RemoteServiceHost

class kanzi::connect::RemoteServiceHost : public ServiceHost

A class that manages a service that is running remotely over the network.

Unnamed Group

virtual string getIdentifier () const KZ_OVERRIDE

Retrieve interface identifier.

Return

interface ID this service handles.

virtual void changeType (const string &type) KZ_OVERRIDE

Changes the interface name at runtime.

Parameters
  • type: new type for the interface.

virtual void initialize (InterfaceDomainBase *domain, ContentClientSharedPtr contentClient, WorkQueueInterface *workQueue) KZ_OVERRIDE

Initialize the service.

Parameters
  • domain: environment where the service is run in.

  • contentClient: access to content system

  • workQueue: interface to work queue used to dispatch work service is ready will eventually cause the services work() method to be invoked.

virtual void uninitialize () KZ_OVERRIDE

cleanup the service.

virtual AbstractSessionSharedPtr acquireSession (ConnectedClientSharedPtr client, int sessionId) KZ_OVERRIDE

Creates a session to this service.

Return

session instance. ownership not transfered.

Parameters
  • client: identifies the client.

  • sessionId: identifies the session.

virtual void releaseSession (int clientId, int sessionId) KZ_OVERRIDE

Releases a session.

Parameters
  • clientId: identifies the client

  • sessionId: identifies the session

virtual void work (ConnectWorkItemSharedPtr workItem) KZ_OVERRIDE

Routine that get(s) called periodically or especially when object itself has requested it to be called using the work queue.

Parameters
  • workItem: Item to be processed.

virtual void receiveMessage (ConnectedClientSharedPtr client, const MessagePackage &message) KZ_OVERRIDE

Invoked for each message this service should handle.

Parameters
  • client: identifies the message sender

  • message: the message to process.

virtual void notifyClientDisconnected (int clientId) KZ_OVERRIDE

Invoked to inform that specific client has disconnected.

Parameters
  • clientId: Identifies the client.

virtual const AbstractService::ServiceDescription & getDescription () KZ_OVERRIDE

Retrieve the service description from service host.

Return

const reference to service description

virtual const AbstractService::ServiceState & getState () KZ_OVERRIDE

Retrieve the service state information.

Return

const reference to service state information.

virtual bool local () const KZ_OVERRIDE

Is this service local or not.

Return

true if service is local

virtual shared_ptr< ServiceServiceConcept::Session > getServiceSession () const KZ_OVERRIDE

Returns a session to remote service.

Relevant only for remote services.

Return

session

virtual int clientID () const KZ_OVERRIDE

Returns the client identifier.

Relevant only for remote clients. Will return -1 for local clients.

Return

client identifier.

inline virtual AbstractServiceSharedPtr getService () const KZ_OVERRIDE

Returns a service instance.

Relevant only for local services.

Return

service

virtual int countSessions () const KZ_OVERRIDE

Returns amount of sessions towards this service.

Return

amount of sessions

virtual ClientDescriptorSharedPtr getClientDescriptor () KZ_OVERRIDE

Return the client descriptor.

Relevant only for remote services.

Return

client descriptor

virtual void setConfigurationProperties (RuntimeDataObjectSharedPtr properties) KZ_OVERRIDE

Stores service configuration properties.

Default implementation is empty, should be overridden by the remote service host implementation

Parameters
  • properties: data object describing the properties.

virtual RuntimeDataObjectSharedPtr getConfigurationProperties () KZ_OVERRIDE

Retrieve service configuration properties.

Return

properties as shared object.

virtual void setState (const AbstractService::ServiceState &state) KZ_OVERRIDE

Sets the service state.

Relevant only for remote clients.

Parameters
  • state: new state for remote clients.

virtual string getServiceRoutingInformationDescription (int serverclientid) KZ_OVERRIDE

Must be overridden by the corresponding implementation.

Return

xml format routing information for the service.

virtual bool reportServiceRuntimeData (const string &, const string &) KZ_OVERRIDE

Can be called, mainly for remote services, to inform about new service information that was received.

inline virtual void notifyAll (const MessagePackage &event) KZ_OVERRIDE

Internal API for scripting utilities makes assumptions on implementation details.

Do not use.

inline virtual RuntimeDataObject * getRuntimeData () KZ_OVERRIDE

Internal API for scripting utilities makes assumptions on implementation details.

Do not use.

Public Functions

RemoteServiceHost(const string &type, shared_ptr<ServiceServiceConcept::Session> serviceSession, ServiceRuntimeDataRegistrySharedPtr registry = ServiceRuntimeDataRegistrySharedPtr())

Constructor.

Parameters
  • type: the service interface identifier

  • serviceSession: pointer to session. Ownership does not transfer.

virtual  ~RemoteServiceHost () KZ_OVERRIDE

Destructor.

void initializeFlowControl(int credits, int creditreturninterval)

Initialize flow control object.

Parameters
  • credits: amount of credits initially

  • creditreturninterval: how often return credits to service.

bool registerRoutingInformationSchema(const string &schema)

Register routing information schema.

Return

true if registration succeeds.

Parameters
  • routing: information schema to register.

bool registerServiceDescriptionSchema(const string &schema)

Invoked to register service description xml.

Return

true if registration succeeded.

Parameters
  • schema: the schema (xml)

void setClientDescriptor(ClientDescriptorSharedPtr clientDescription)

Sets a client descriptor.

Parameters
  • clientDescription: The information to set.

void setDescription(const AbstractService::ServiceDescription &description)

Set service description for a remote service.

Parameters
  • description: the description to set