AbstractSession¶
-
class
kanzi::connect::AbstractSession: public enable_shared_from_this<AbstractSession>¶ A class that is used to deliver interface network messages between client and server.
In order to use a service, client needs always first to establish a session to interface.
Subclassed by ClientStreamSession, ExternalClientSession, ExternalServiceSession
Public Types
-
typedef function<bool(const MessagePackage &message)>
MessageReceivedFunction¶ Message subscription callback.
- Return
True if message was handled and framework does not need to process it further.
-
typedef shared_ptr<void>
MessageSubscriptionToken¶
-
typedef unordered_map<string, string>
ServiceAttributes¶
Public Functions
-
AbstractSession(const string &interfaceId, int clientId, int sessionId, MessageDispatcher *dispatcher)¶ Constructor.
- Parameters
interfaceId: Id of the interface.clientId: Id of the client.sessionId: Id of the session.dispatcher: Message dispatcher that can be used to deliver network messages.
-
~AbstractSession()¶ Destructor.
-
MessageSubscriptionToken
addMessageSubscription(const string &messageType, MessageReceivedFunction function)¶ Subscribe all messages of type.
- Return
Subscription token which is needed to unsubscribe callbacks.
- Parameters
messageType: Type of the messages to subscribe callbacks.function: Callback to pass the subscribed messages.
-
MessageSubscriptionToken
addMessageTypeSubscription(int messageType, MessageReceivedFunction function)¶ Subscribe all messages of Message Package type.
- See
: MessagePackage::MessageType
- Return
Subscription token which is needed to unsubscribe callbacks.
- Parameters
messageType: Type of the messages to subscribe callbacks.
- Parameters
function: Callback to pass the subscribed messages.
-
MessageSubscriptionToken
addRegexMessageSubscription(const string ®ex, MessageReceivedFunction function)¶ Subscribe all messages that match a regular expression.
- Return
Subscription token which is needed to unsubscribe callbacks.
- Parameters
regex: Regular expression for matching messages.function: Callback to pass the subscribed messages.
-
void
changeMessageDispatcher(MessageDispatcher *dispatcher)¶ Changes message dispatcher on the fly.
- Parameters
dispatcher: the new dispatcher to take into use.
-
void
enableVerboseLogging(bool enable)¶ Enables verbose logging for the functionality.
- Parameters
enable: true to enable. defaults to false.
-
ClientDescriptorSharedPtr
getClientDescriptor() const¶ Retrieve client descriptor.
- Return
client descriptor
-
int
getClientId() const¶ Retrieve client id of the session.
- Return
Network id of the client.
-
int
getId() const¶ Retrieve id of the session.
- Return
Id of the session, unique for this client.
-
const string &
getInterfaceId() const¶ Retrieve id of the interface.
- Return
Id of the connected interface.
-
int
getServerClientId() const¶ Retrieve server client identifier of the session.
- Return
the server identifier for this client inside the server.
-
const ServiceAttributes &
getServiceAttributes()¶
-
void
initialize()¶ Initializes this session.
-
void
receive(const MessagePackage &message)¶ Asks session to process received message.
- Parameters
message: Message that was received.
-
void
removeMessageSubscription(const string &messageType, MessageSubscriptionToken token)¶ Remove message subscription.
- Parameters
messageType: Type of the messages to unsubscribe callbacks.token: Subscription token.
-
void
removeMessageTypeSubscription(int messageType, MessageSubscriptionToken token)¶ Remove message subscription.
- See
: MessagePackage::MessageType
- Parameters
messageType: Type of the messages to unsubscribe callbacks.
- Parameters
token: Subscription token.
-
void
removeRegexMessageSubscription(const string ®ex, MessageSubscriptionToken token)¶ Remove regular expression message subscription.
- Parameters
regex: Regular expression to unsubscribe.token: Subscription token.
Saves a client descriptor of the client who created this session.
- Parameters
clientDescriptor:
Configure P2P routing instructions for the client.
- Parameters
routingHandler: the instructions to apply.
-
void
setGenericInvoker(GenericInvoker *invoker)¶ Setups generic invocation mechanism.
- Parameters
invoker: generic invocation mechanism.
-
void
setServerClientId(int id)¶ Sets servers identifier of the client this session belongs to.
- Parameters
id: the identifier.
Configure P2P routing for server scope.
- Parameters
serverRouter: routing functionality for server.
-
void
terminate()¶ Terminates the session.
-
bool
transmit(const MessagePackage &message)¶ Sends outgoing message to network.
- Parameters
message: Message to send.
Sends outgoing message to network.
- Parameters
message: Message to send.
-
void
uninitialize()¶ Un-initializes this session.
-
void
updateEnabledState(bool newEnabledState)¶ Update the enabled state of this session.
- Parameters
newEnabledState: The new status.
-
typedef function<bool(const MessagePackage &message)>