Kanzi Connect 3.9.10
kanzi::connect::p2p::P2PServer Class Reference

Peer to Peer server functionality. More...

#include <p2pserver.hpp>

Inheritance diagram for kanzi::connect::p2p::P2PServer:
kanzi::connect::NetworkListener::Observer

Public Member Functions

void disconnectAll ()
 Disconnects all connected peers.
 
void enableVerboseLogging (bool enable)
 Controls verbose logging.
 
void flushPendingProviders ()
 Refresh updates pending for transfer credits.
 
ClientIdManagergetClientIdManager () const
 Retrieve client id manager functionality.
 
ConnectDomainSharedPtr getConnectDomain () const
 Retrieve connect domain.
 
string getDiagnosticsCounters (vector< DiagnosticsObject > &objects)
 Will fill the provided array with known diagnostics variables.
 
vector< EndpointSharedPtrgetEndpoints ()
 Gets all the endpoints this P2PServer has configured.
 
RoutingRulesSharedPtr getRoutingRules ()
 Retrieve routing rules for the bound service.
 
bool initialize (RoutingRules &rr, ConnectionAdapter::Parameters SSLParameters=ConnectionAdapter::Parameters())
 Initialize and instantiate all required connection adapters.
 
 P2PServer (ClientIdManager &cim, const string &reliableBearer, const string &unreliableBearer, ConnectDomainSharedPtr domain, AbstractServiceSharedPtr service, RuntimeDataProvider *dataProvider)
 Constructor.
 
void registerMessageFilter (messagefilter::ServiceMessageFilterHandler handler)
 Register a message filter callback that is invoked for each and every incoming message.
 
void reportServiceRuntimeData (const string &interfaceId, const string &path, const string &stream)
 Invoked when-ever the runtime data of the hosted remote service changes.
 
void setDomain (ConnectDomainSharedPtr domain)
 Sets the domain to be used.
 
bool transmit (size_t clientId, const MessagePackage &message)
 Transmits a provided message to specified client.
 
bool tryTransmitDirectly (const MessagePackage &message)
 Try transmit message directly to peers shall there be a route(s) for such.
 
virtual ~P2PServer ()
 Destructor.
 
- Public Member Functions inherited from kanzi::connect::NetworkListener::Observer
virtual ~Observer ()=default
 

Protected Member Functions

virtual void onConnected (int clientId, NetworkListener *listener) override
 Callback to notify that connection has been established.
 
virtual void onDisconnected (int clientId, NetworkListener *listener) override
 Callback to notify that connection has been terminated.
 
virtual void onPacketReceived (int clientId, NetworkListener *listener) override
 Callback to notify that there is incoming data.
 

Detailed Description

Peer to Peer server functionality.

Constructor & Destructor Documentation

◆ P2PServer()

kanzi::connect::p2p::P2PServer::P2PServer ( ClientIdManager & cim,
const string & reliableBearer,
const string & unreliableBearer,
ConnectDomainSharedPtr domain,
AbstractServiceSharedPtr service,
RuntimeDataProvider * dataProvider )
explicit

Constructor.

Parameters
cimclient identity manager
reliableBearerthe default bearer for reliable communication
unreliableBearerthe default bearer for unreliable communication
domainserver side connect domain
servicethe service bound to this P2P functionality
dataProviderruntime data provider.

◆ ~P2PServer()

virtual kanzi::connect::p2p::P2PServer::~P2PServer ( )
virtual

Destructor.

Member Function Documentation

◆ disconnectAll()

void kanzi::connect::p2p::P2PServer::disconnectAll ( )

Disconnects all connected peers.

◆ enableVerboseLogging()

void kanzi::connect::p2p::P2PServer::enableVerboseLogging ( bool enable)

Controls verbose logging.

Parameters
enableenables the verbose logging.

◆ flushPendingProviders()

void kanzi::connect::p2p::P2PServer::flushPendingProviders ( )

Refresh updates pending for transfer credits.

◆ getClientIdManager()

ClientIdManager & kanzi::connect::p2p::P2PServer::getClientIdManager ( ) const

Retrieve client id manager functionality.

Returns
client id manager instance.

◆ getConnectDomain()

ConnectDomainSharedPtr kanzi::connect::p2p::P2PServer::getConnectDomain ( ) const

Retrieve connect domain.

Returns
connect domain pointer, ownership not transfered.

◆ getDiagnosticsCounters()

string kanzi::connect::p2p::P2PServer::getDiagnosticsCounters ( vector< DiagnosticsObject > & objects)

Will fill the provided array with known diagnostics variables.

Parameters
objectsvector to be filled with diagnostics objects.
Returns
the textual identifier (effectively a service name) to which entity the measurements belong into.

◆ getEndpoints()

vector< EndpointSharedPtr > kanzi::connect::p2p::P2PServer::getEndpoints ( )

Gets all the endpoints this P2PServer has configured.

Returns
vector of endpoint definitions

◆ getRoutingRules()

RoutingRulesSharedPtr kanzi::connect::p2p::P2PServer::getRoutingRules ( )

Retrieve routing rules for the bound service.

Returns
routing rules bound to this server.

◆ initialize()

bool kanzi::connect::p2p::P2PServer::initialize ( RoutingRules & rr,
ConnectionAdapter::Parameters SSLParameters = ConnectionAdapter::Parameters() )

Initialize and instantiate all required connection adapters.

Parameters
rrrouting rules that will be filled with connection endpoints accordingly.
SSLParameterscontains SSL parameters to be used with server side functionality. Required only if SSL bearer is to be used. Parameters should be passed with following keys "server_cert" Server certificate "server_pkey" Server private key "client_ca" Client CA certificate. "server_name" server name identitity (optional)
Returns
true if succeeded and operational. false otherwise.

◆ onConnected()

virtual void kanzi::connect::p2p::P2PServer::onConnected ( int clientId,
NetworkListener * listener )
overrideprotectedvirtual

Callback to notify that connection has been established.

Parameters
clientIdThe id of the connected client.
listenerListener that triggered the notification.

Reimplemented from kanzi::connect::NetworkListener::Observer.

◆ onDisconnected()

virtual void kanzi::connect::p2p::P2PServer::onDisconnected ( int clientId,
NetworkListener * listener )
overrideprotectedvirtual

Callback to notify that connection has been terminated.

Parameters
clientIdThe id of the disconnected client.
listenerListener that triggered the notification.

Reimplemented from kanzi::connect::NetworkListener::Observer.

◆ onPacketReceived()

virtual void kanzi::connect::p2p::P2PServer::onPacketReceived ( int clientId,
NetworkListener * listener )
overrideprotectedvirtual

Callback to notify that there is incoming data.

Parameters
clientIdThe id of the client that sent data.
listenerListener that triggered the notification.

Reimplemented from kanzi::connect::NetworkListener::Observer.

◆ registerMessageFilter()

void kanzi::connect::p2p::P2PServer::registerMessageFilter ( messagefilter::ServiceMessageFilterHandler handler)

Register a message filter callback that is invoked for each and every incoming message.

Parameters
handlerthe handler to be invoked.

◆ reportServiceRuntimeData()

void kanzi::connect::p2p::P2PServer::reportServiceRuntimeData ( const string & interfaceId,
const string & path,
const string & stream )

Invoked when-ever the runtime data of the hosted remote service changes.

Parameters
interfaceIdthe interface whom data got changed
paththe path that got changed.
streamthe serialized runtimedata stream.

◆ setDomain()

void kanzi::connect::p2p::P2PServer::setDomain ( ConnectDomainSharedPtr domain)

Sets the domain to be used.

Parameters
domainthe domain

◆ transmit()

bool kanzi::connect::p2p::P2PServer::transmit ( size_t clientId,
const MessagePackage & message )

Transmits a provided message to specified client.

Parameters
clientIdthe client to dispatch the message to
messagethe message to dispatch

◆ tryTransmitDirectly()

bool kanzi::connect::p2p::P2PServer::tryTransmitDirectly ( const MessagePackage & message)

Try transmit message directly to peers shall there be a route(s) for such.

Parameters
messagethe message to send
Returns
true if message got sent, false if should be dispatched further.

The documentation for this class was generated from the following file: