ConnectionAdapterObjectFactory

class kanzi::connect::ConnectionAdapterObjectFactory

Connection adapter factory interface.

Public Types

typedef function<ConnectionAdapterSharedPtr(ClientIdManager &clientIdManager)> ConnectionAdapterCreateFunc
typedef function<ConnectionAdapter::Parameters()> ConnectionAdapterParametersCreateFunc
typedef map<string, shared_ptr<FactoryTriple>> FactoryContainer
typedef struct kanzi::connect::ConnectionAdapterObjectFactory::FactoryTriple FactoryTriple

Public Functions

ConnectionAdapterObjectFactory()

C++ constructor.

ConnectionAdapterSharedPtr createAdapterInstance(const string &identifier, ClientIdManager &clientIdManager)

Instantiate adapter of specified type.

Return

newly allocated adapter.

ConnectionAdapter::Parameters createDefaultAdapterParameters(const string &identifier)

Instantiate default parameters for given type adapter.

Return

newly allocated parameters for given adapter type.

ConnectionAdapter::Parameters createP2PAdapterParameters(const string &identifier)

Instantiate default parameters for given type adapter.

Return

newly allocated parameters for given adapter type.

ConnectDomain *getDomain() const

Retrieve the connect domain.

Return

the domain where factory operates in. ownership not transfered.

void registerAdapterType(const string &identifier, ConnectionAdapterCreateFunc createFunc, ConnectionAdapter::Parameters defaultParameters = ConnectionAdapter::Parameters(), ConnectionAdapter::Parameters p2pParameters = ConnectionAdapter::Parameters())

Register new adapter type.

Parameters
  • createFunc: function object to invoke in order to create instance of adapter

void setDomain(ConnectDomain *domain)

Store the domain where factory operates in.

Parameters
  • domain: the operating domain. ownership not transfered.

void unregisterAdapterType(const string &identifier)

Unregisters given adapter type.

struct FactoryTriple

Public Members

ConnectionAdapterCreateFunc createFunction
ConnectionAdapter::Parameters defaultParameters
ConnectionAdapter::Parameters p2pParameters