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.

ConnectDomainSharedPtr 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(ConnectDomainSharedPtr 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