SubscriptionContainer

template<typename SessionType>
class kanzi::connect::SubscriptionContainer

Container for session subscriptions within abstract service or external service adapter.

See

kanzi::connect::AbstractService

See

kanzi::connect::ExternalServiceAdapter

Template Parameters
  • SessionType: The session object type which class uses for sessions

Public Functions

SubscriptionContainer() = default

ctor

~SubscriptionContainer() = default

dtor

bool addSubscription(const string &identifier, SessionType session)

Add subscription to the given session for this service.

Return

True if the subscription was added, double subscription is not accepted

Parameters
  • identifier: Identifies the subscription, what this means is implementation specific

  • session: The session to subscribe

vector<SessionType> findSubscribers(const string &identifier)

Find all subscribers for the given identifier.

Return

vector listing all subscribers

Parameters
  • identifier: Identifies the subscriptions, what this means is implementation specific

bool hasSubscriptions(const string &identifier)

Check if the given identifier has any subscriptions.

Return

True if at least one subscriber is found

Parameters
  • identifier: The identifier to check, what this means is implementation specific

vector<string> removeSubscriptions(SessionType session, const string &identifier)

Remove subscription to the given session for this service.

Return

vector containing identifiers that no longer have any subscriptions left after this call

Parameters
  • session: The session whose subscriptions are to be removed

  • identifier: The subscriptions to remove, if empty all subscriptions for the session are removed