ContentClient

class kanzi::connect::ContentClient : public AbstractServiceClient

A class that abstracts server-side & client-side access to content manager.

This class makes it possible to acquire or release a token that can be used to subscribe to content in the content database. The content token can also be used to register content to the server-side content database. This abstraction makes it possible to write content providers and consumers that can operate both locally (server-side) and remotely (client-side).

See

LocalContentClient and RemoteContentClient for server-side and client-side variants.

Subclassed by LocalContentClient, RemoteContentClient

Public Types

typedef function<void(const string &uri, int reason, int startRow, int endRow)> ContentInvalidationFunction

Callback function for content invalidation.

typedef shared_ptr<void> ContentToken

A token that identifies the content session / consumer.

typedef function<void(const string &uri, ContentDataSharedPtr data)> ResultCallbackFunction

Callback function for content result.

typedef function<void(const string &uri, RuntimeDataObjectSharedPtr data)> RuntimeDataResultCallbackFunction

callback function for runtimedata content result.

Public Functions

~ContentClient()

Destructor.

ContentToken acquireContentToken() = 0

Acquire content token and register as user of content service.

Return

Content token that is used to identify the content session.

bool addContentProvider(ContentToken token, const string &uri, ContentProviderSharedPtr contentProvider) = 0

Adds content provider to content system.

Return

true if succeeded, false on error.

Parameters
  • token: Content token, identifies the user of content API, needs to be acquired first.

  • uri: Content URI that is handled by the content provider.

  • contentProvider: Content provider to add.

string getIdentifier() const

Returns the type of the service.

Return

Identifier of the service, as a string.

bool getVerboseLog() const = 0

Return the current state of log verbosity.

Return

log verbosity.

bool hasSession(ContentToken token) = 0

Determine whether specific content token has session currently available.

Return

true if session exists

Parameters
  • token: content token

void releaseContentToken(ContentToken token) = 0

Release content token and unregister from content service.

Parameters
  • token: the content token to release.

void removeContentProvider(ContentToken token, ContentProviderSharedPtr contentProvider) = 0

Removes content provider from content system.

Parameters
  • token: Content token, identifies the user of content API, needs to be acquired first.

  • contentProvider: Content provider to remove.

void setVerboseLog(bool verbose) = 0

Configures verbose logging for the content client.

Parameters
  • verbose: whether to be verbose or not.

bool subscribe(ContentToken token, ContentQueryArgumentsSharedPtr args, ResultCallbackFunction callback, ContentInvalidationFunction invalidationCallback) = 0

Subscribe to a table based content.

Return

true if subscription started, false if problems were met. Possible reasons for failure include for example trying to subscribe to same domain twice using same content token.

Parameters
  • token: Content token, identifies the user of content API, needs to be acquired first. When subscribing to table based content (content:// or service://) new token must be allocated for each content domain (E.g. com.rightware.content).

  • args: Query Arguments.

  • callback: Function callback for results.

  • invalidationCallback: function to invoke when content provider informs that certain part of the content has been invalidated.

bool subscribeEx(ContentToken token, ContentQueryArgumentsSharedPtr args, ContentClientObserver *observer) = 0

Subscribe to content.

Return

true if subscription started, false if there were no session available.

Parameters
  • token: content content, identifies the user of content API.

  • args: Query Arguments.

bool subscribeRuntimeData(ContentToken token, const string uri, RuntimeDataResultCallbackFunction callback, int credits, int creditreturninterval) = 0

Subscribes to a service runtime data.

Return

true if subscription started, false if there were no session available.

Parameters
  • token: Content token, identifies the user of content API.

  • uri: The content URI where to subscribe. Usually something like service://cluster.

  • callback: Function callback for results.

  • credits: amount of transter credits that define the maximum amount of queued items (including both service and client ends) of this type.

  • creditreturninterval: how often functionality will return transfer credits to the content producer. Smaller the value more housekeeping traffic is produced.

bool subscribeRuntimeDataEx(ContentToken token, const string uri, ContentClientRuntimeDataObserver *observer, int credits, int creditreturninterval) = 0

Subscribe to service runtime data.

Return

true if subscription started, false if there were no session available or subscription for the specific uri is already available.

Parameters
  • token: Content token, identifies the user of content API, needs to be acquired first.

  • observer: Observer interface to be invoked when subscribed runtime data changes.

  • credits: amount of transter credits that define the maximum amount of queued items (including both service and client ends) of this type.

  • creditreturninterval: how often functionality will return transfer credits to the content producer. Smaller the value more housekeeping traffic is produced.

void unsubscribe(ContentToken token, const string &uri) = 0

Unsubscribe from content URI.

Parameters
  • token: Content token.

  • uri: Content URI to unsubscribe. Must be previously subscribed.

void unsubscribeRuntimeData(ContentToken token, const string &URI) = 0

Unsubscribe from runtime data.

Parameters
  • token: Content token to unsubscribe.

  • uri: Service URI where to unsubscribe from.

void work()

See AbstractServiceClient::work()

Public Static Functions

string Type()

Type accessors.

class ContentClientObserver

Polymorphic C++ observer interface for table based content subscriptions.

Public Functions

~ContentClientObserver()

Virtual destructor (for SWIG).

void contentInvalidationRequest(const string &uri, int reason, int startRow, int endRow) = 0

Invoked when content provider informs that certain part of the content has been invalidated.

Parameters
  • uri: The URI

  • reason: reason code. Currently not used.

  • startRow: beginning of invalidation (inclusive). Currently not used.

  • endRow: end of invalidation (inclusive). Currently not used.

void contentSubscriptionResult(const string &uri, ContentDataSharedPtr data) = 0

Invoked when content subscription provides some data.

Parameters
  • uri: The URI

  • data: The data

class ContentClientRuntimeDataObserver

Polymorphic C++ observer interface for runtime data subscriptions.

Public Functions

~ContentClientRuntimeDataObserver()

Virtual destructor (for SWIG).

void contentRuntimeDataSubscriptionResult(const string &uri, RuntimeDataObjectSharedPtr data) = 0

Invoked when content subscription provides some data.

Parameters
  • uri: The URI

  • data: The data