1
#ifndef IRC_CLI_CONNECTOR_H_
2
#define IRC_CLI_CONNECTOR_H_
4
#include <irc/visibility.h>
6
#include <messaging/connector.h>
7
#include <messaging/messenger.h>
8
#include <messaging/enumerator.h>
9
#include <messaging/associative_dictionary.h>
16
// Handy fw declarations
24
// Handy fw declarations
27
class IRC_PUBLIC Connector : public messaging::Connector
31
// create returns a new shared instance of Connector.
32
static std::shared_ptr<Connector> create();
37
bool network_monitor_enabled() override;
38
const messaging::Enumerator<messaging::Parameter>& parameters() const override;
39
std::shared_ptr<messaging::Connection> request_connection(
40
const std::shared_ptr<messaging::Connection::Observer>& connection_observer,
41
const std::shared_ptr<messaging::Messenger::Observer>& messenger_observer,
42
const std::shared_ptr<messaging::PresenceManager::Observer>& presence_observer,
43
const messaging::Dictionary<std::string, messaging::Variant>& dict =
44
messaging::AssociativeDictionary<std::string, messaging::BoostVariant, messaging::Variant>()) override;
46
void release_connection(const std::weak_ptr<Connection>& connection);
51
static Connector*& mutable_instance();
52
static Connector* instance();
54
messaging::StdVectorEnumerator<messaging::Parameter> params_enum_;
55
std::set<std::weak_ptr<Connection>, std::owner_less<std::weak_ptr<Connection>>> connections_;
60
#endif // IRC_CLI_CONNECTOR_H_