Kanzi Connect  3.9.8
Kanzi Connect C++ API
kanzi::connect::VirtualFileClient Class Referenceabstract

Base class for local and remote virtual http file clients. More...

#include <virtualfileclient.hpp>

Inheritance diagram for kanzi::connect::VirtualFileClient:
kanzi::connect::AbstractServiceClient kanzi::connect::VirtualFileLocalClient kanzi::connect::VirtualFileRemoteClient

Classes

class  RegistrationStatusChangeCallback
 Callback interface. More...
 

Public Types

enum  RegistrationStatus { NotRegistered, RegistrationInProgress, RegistrationFailed, Registered }
 
typedef enum kanzi::connect::VirtualFileClient::RegistrationStatus RegistrationStatus
 
typedef shared_ptr< void > RegistrationToken
 Token used to identify registration. More...
 
- Public Types inherited from kanzi::connect::AbstractServiceClient
typedef function< void(void)> SessionRunningFunction
 
typedef shared_ptr< void > SessionRunningSubscriptionToken
 
typedef function< void(void)> SessionStoppedFunction
 

Public Member Functions

virtual string getIdentifier () const
 Returns the type of the service. More...
 
virtual string getPath (RegistrationToken token) const =0
 Retrieve the path associated with the registration. More...
 
virtual RegistrationToken registerPath (const string &scheme, const string &pathProposal, VirtualFileProvider *provider)=0
 Registers a path to HTTP Server. More...
 
virtual void registerRegistrationStatusChangeCallback (RegistrationToken token, RegistrationStatusChangeCallback *callback)
 Register registration status change callback. More...
 
virtual RegistrationStatus registrationStatus (RegistrationToken token)=0
 Checks the registration status. More...
 
virtual void unregisterPath (RegistrationToken token)=0
 Unregisters previously registered path. More...
 
virtual void unregisterRegistrationStatusChangeCallback (RegistrationToken token)
 Clears previously registered status change callback. More...
 
virtual ~VirtualFileClient ()
 C++ destructor - performs cleanup. More...
 
- Public Member Functions inherited from kanzi::connect::AbstractServiceClient
 AbstractServiceClient ()
 Constructor. More...
 
AbstractSession::MessageSubscriptionToken addMessageSubscription (const string &messageType, AbstractSession::MessageReceivedFunction function)
 
SessionRunningSubscriptionToken addSessionRunningSubscription (SessionRunningFunction function)
 
SessionRunningSubscriptionToken addSessionStoppedSubscription (SessionStoppedFunction function)
 
optional< int > getActiveSessionIdentifier ()
 
optional< const AbstractSession::ServiceAttributesgetServiceAttributes ()
 
virtual void onSessionRunning ()
 
virtual void onSessionStopped ()
 
void removeMessageSubscription (const string &messageType, AbstractSession::MessageSubscriptionToken token)
 
void removeSessionRunningSubscription (SessionRunningSubscriptionToken token)
 
void removeSessionStoppedSubscription (SessionRunningSubscriptionToken token)
 
void setEnabledState (bool newEnabledState)
 Enable/disable the service by allowing or blocking traffic between client and server. More...
 
bool transmit (const MessagePackage &message)
 
virtual void work ()
 Carry out asynchronous work bound to Kanzi Connect client main thread. More...
 
virtual ~AbstractServiceClient ()
 Destructor. More...
 

Static Public Member Functions

static string Type ()
 Type of the client. More...
 

Additional Inherited Members

- Protected Types inherited from kanzi::connect::AbstractServiceClient
enum  SessionState { INITIALIZED = 0, RUNNING = 1, STOPPED = 2 }
 
- Protected Member Functions inherited from kanzi::connect::AbstractServiceClient
virtual AbstractSessionSharedPtr getSession ()
 
- Protected Attributes inherited from kanzi::connect::AbstractServiceClient
SessionState m_sessionState
 

Detailed Description

Base class for local and remote virtual http file clients.

Member Typedef Documentation

◆ RegistrationStatus

◆ RegistrationToken

Token used to identify registration.

Member Enumeration Documentation

◆ RegistrationStatus

Enumerator
NotRegistered 

Registration not yet started.

RegistrationInProgress 

Registration of a path is in progress.

RegistrationFailed 

Registration failed, most likely because same registration already existed.

Registered 

Registration succeeded.

Constructor & Destructor Documentation

◆ ~VirtualFileClient()

virtual kanzi::connect::VirtualFileClient::~VirtualFileClient ( )
inlinevirtual

C++ destructor - performs cleanup.

Member Function Documentation

◆ getIdentifier()

virtual string kanzi::connect::VirtualFileClient::getIdentifier ( ) const
inlinevirtual

Returns the type of the service.

Returns
Identifier of the service, as a string.

Implements kanzi::connect::AbstractServiceClient.

◆ getPath()

virtual string kanzi::connect::VirtualFileClient::getPath ( RegistrationToken  token) const
pure virtual

Retrieve the path associated with the registration.

Parameters
tokenThe token that identifies the registration.
Returns
full path in form: http://<server>:8080/somepath/ empty string is returned if registration has failed, or it is still in progress.

Implemented in kanzi::connect::VirtualFileRemoteClient, and kanzi::connect::VirtualFileLocalClient.

◆ registerPath()

virtual RegistrationToken kanzi::connect::VirtualFileClient::registerPath ( const string &  scheme,
const string &  pathProposal,
VirtualFileProvider provider 
)
pure virtual

Registers a path to HTTP Server.

Registration is an asynchronous operation for remote clients.

Parameters
schemeRequested protocol. Either HTTP or HTTPS expected. If you do not set a value, uses HTTP.
pathProposalclients proposal of the path where the serving is to be done.
providerpointer 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.
Returns
Opaque token that identifies this registration.

Implemented in kanzi::connect::VirtualFileRemoteClient, and kanzi::connect::VirtualFileLocalClient.

◆ registerRegistrationStatusChangeCallback()

virtual void kanzi::connect::VirtualFileClient::registerRegistrationStatusChangeCallback ( RegistrationToken  token,
RegistrationStatusChangeCallback callback 
)
inlinevirtual

Register registration status change callback.

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

Parameters
tokenidentification token.
callbackinterface to be invoked when registration status changes.

Reimplemented in kanzi::connect::VirtualFileRemoteClient.

◆ registrationStatus()

virtual RegistrationStatus kanzi::connect::VirtualFileClient::registrationStatus ( RegistrationToken  token)
pure virtual

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.

Parameters
tokenThe token that identifies the registration.
Returns
enumerated status.

Implemented in kanzi::connect::VirtualFileRemoteClient, and kanzi::connect::VirtualFileLocalClient.

◆ Type()

static string kanzi::connect::VirtualFileClient::Type ( )
static

Type of the client.

Returns
type as string

◆ unregisterPath()

virtual void kanzi::connect::VirtualFileClient::unregisterPath ( RegistrationToken  token)
pure virtual

Unregisters previously registered path.

Parameters
tokenopaque handle got using the registerPath

Implemented in kanzi::connect::VirtualFileRemoteClient, and kanzi::connect::VirtualFileLocalClient.

◆ unregisterRegistrationStatusChangeCallback()

virtual void kanzi::connect::VirtualFileClient::unregisterRegistrationStatusChangeCallback ( RegistrationToken  token)
inlinevirtual

Clears previously registered status change callback.

Parameters
tokenpath registration token.

Reimplemented in kanzi::connect::VirtualFileRemoteClient.


The documentation for this class was generated from the following file: