VirtualFileClient

class kanzi::connect::VirtualFileClient : public AbstractServiceClient

Base class for local and remote virtual http file clients.

Subclassed by VirtualFileLocalClient, VirtualFileRemoteClient

Public Types

enum RegistrationStatus

Values:

enumerator NotRegistered

Registration not yet started.

enumerator RegistrationInProgress

Registration of a path is in progress.

enumerator RegistrationFailed

Registration failed, most likely because same registration already existed.

enumerator Registered

Registration succeeded.

typedef enum kanzi::connect::VirtualFileClient::RegistrationStatus RegistrationStatus
typedef shared_ptr<void> RegistrationToken

Token used to identify registration.

Public Functions

~VirtualFileClient()

C++ destructor - performs cleanup.

string getIdentifier() const

Returns the type of the service.

Return

Identifier of the service, as a string.

string getPath(RegistrationToken token) const = 0

Retrieve the path associated with the registration.

Return

full path in form: http://<server>:8080/somepath/ empty string is returned if registration has failed, or it is still in progress.

Parameters
  • token: The token that identifies the registration.

RegistrationToken registerPath(const string &scheme, const string &pathProposal, VirtualFileProvider *provider) = 0

Registers a path to HTTP Server.

Registration is an asynchronous operation for remote clients.

Return

Opaque token that identifies this registration.

Parameters
  • scheme: Requested protocol. Either HTTP or HTTPS expected. If you do not set a value, uses HTTP.

  • pathProposal: clients proposal of the path where the serving is to be done.

  • provider: pointer to callback interface that is, if successfully registered, invoked for every file request made under the registered path. Caller must guarantee that the provided callback interface remains valid until corresponding unregisterPath call is made.

void registerRegistrationStatusChangeCallback(RegistrationToken token, RegistrationStatusChangeCallback *callback)

Register registration status change callback.

Registration is meaningful only for remote clients since status does not change for local clients.

Parameters
  • token: identification token.

  • callback: interface to be invoked when registration status changes.

RegistrationStatus registrationStatus(RegistrationToken token) = 0

Checks the registration status.

For remote operations registration is asynchronous and thus it is not complete until this method returns either Registered or RegistrationFailed. Also, if for example connection is lost, then the registration status changes even if it has been completed earlier.

Return

enumerated status.

Parameters
  • token: The token that identifies the registration.

void unregisterPath(RegistrationToken token) = 0

Unregisters previously registered path.

Parameters
  • token: opaque handle got using the registerPath

void unregisterRegistrationStatusChangeCallback(RegistrationToken token)

Clears previously registered status change callback.

Parameters
  • token: path registration token.

Public Static Functions

string Type()

Type of the client.

Return

type as string

class RegistrationStatusChangeCallback

Callback interface.

Public Functions

~RegistrationStatusChangeCallback()

Virtual destructor - performs cleanup.

void registrationStateChanged() = 0

Invoked when VirtualFileClient instances registration status changes.