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

tparam SessionType

The session object type which class uses for sessions

Public Functions

explicit SubscriptionContainer() = default

ctor

~SubscriptionContainer() = default

dtor

inline bool addSubscription(const string &identifier, SessionType session)

Add subscription to the given session for this service.

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

  • session – The session to subscribe

Returns

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

inline vector<SessionType> findSubscribers(const string &identifier)

Find all subscribers for the given identifier.

Parameters

identifier – Identifies the subscriptions, what this means is implementation specific

Returns

vector listing all subscribers

inline bool hasSubscriptions(const string &identifier)

Check if the given identifier has any subscriptions.

Parameters

identifier – The identifier to check, what this means is implementation specific

Returns

True if at least one subscriber is found

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

Remove subscription to the given session for this service.

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

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

Returns

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