Kanzi Connect  3.9.8
Kanzi Connect C++ API
kanzi::connect::VirtualFileService Class Reference

A service class to manage clients on server side. Implements Connection Interface on server. More...

#include <virtualfile_service.hpp>

Inheritance diagram for kanzi::connect::VirtualFileService:
kanzi::connect::VirtualFileRequestHandler::ServiceInterface kanzi::connect::VirtualFileLocalResponseInterface

Public Member Functions

virtual void initialize (InterfaceDomainBase *domain, ContentClientSharedPtr contentClient, WorkQueueInterface *workQueue) override
 See AbstractService::initialize. More...
 
void prepareForShutdown ()
 Tell service that system is about to uninitialize, and no new requests should be added. More...
 
virtual void processWork (VirtualFileWorkItemSharedPtr workItem)
 Process a work item from other services. More...
 
string registerPath (const string &scheme, const string &path, VirtualFileProvider *provider)
 Registers a path to www server. More...
 
void setHttpServer (CivetServerSharedPtr httpServer)
 Set HTTP server to handle HTTP requests. More...
 
virtual void uninitialize () override
 See AbstractService::uninitialize. More...
 
bool unregisterPath (const string &path, VirtualFileProvider *provider)
 Unregisters previously registered path. More...
 
 VirtualFileService (ConnectDomainSharedPtr domain=nullptr)
 C++ constructor - initialize the object. More...
 
virtual ~VirtualFileService ()
 Destructor. More...
 
- Public Member Functions inherited from kanzi::connect::VirtualFileLocalResponseInterface
virtual ~VirtualFileLocalResponseInterface ()
 Virtual destructor. More...
 

Protected Member Functions

virtual void cancelRequestResource (const string &uri) override
 
virtual void fileBlock (const int &requestHandle, const int &ordinal, const string &data) override
 
virtual void onReleaseSession (AbstractSessionSharedPtr session) override
 
virtual bool processFileReadRequest (struct mg_connection *connection) override
 Invoked to handle a content request. More...
 
virtual bool processPostContentRequest (struct mg_connection *connection) override
 Invoked to handle HTTP post request. More...
 
bool processRequestInternal (struct mg_connection *connection, const string &uri)
 
virtual void provideAsFileThroughHttp (VirtualFileWorkItemSharedPtr workItem, const string &filepath) override
 Provide response as a path to existing file. More...
 
virtual void provideAsHttpContent (VirtualFileWorkItemSharedPtr workItem, const string &mime, const unsigned char *blob, size_t length) override
 Provide requested file as inline content through HTTP. More...
 
virtual void provideAsRedirectUri (VirtualFileWorkItemSharedPtr workItem, const string &redirecturi) override
 Provide response as HTTP redirect. More...
 
virtual bool provideFileAsData (const int &requestHandle, const string &mime, const string &content) override
 
virtual bool provideFileAsFilepath (const int &requestHandle, const string &mime, const string &filepath) override
 
virtual bool provideFileAsHttpRedirect (const int &requestHandle, const string &redirecturi) override
 
virtual bool provideFileDirectly (const string &uri, vector< char > &buffer, const unsigned int blockSize) override
 Provide response as file contents through the connection adapters. More...
 
virtual string registerPath (const string &scheme, const string &path) override
 
virtual bool requestResource (const string &uri) override
 
virtual void startFileResponse (const int &requestHandle, const int &blockSize, const int &numBlocks) override
 
virtual bool unregisterPath (const string &path) override
 

Detailed Description

A service class to manage clients on server side. Implements Connection Interface on server.

Constructor & Destructor Documentation

◆ VirtualFileService()

kanzi::connect::VirtualFileService::VirtualFileService ( ConnectDomainSharedPtr  domain = nullptr)

C++ constructor - initialize the object.

Parameters
domainconnect domain instance.

◆ ~VirtualFileService()

virtual kanzi::connect::VirtualFileService::~VirtualFileService ( )
virtual

Destructor.

Member Function Documentation

◆ cancelRequestResource()

virtual void kanzi::connect::VirtualFileService::cancelRequestResource ( const string &  uri)
overrideprotectedvirtual

◆ fileBlock()

virtual void kanzi::connect::VirtualFileService::fileBlock ( const int &  requestHandle,
const int &  ordinal,
const string &  data 
)
overrideprotectedvirtual

◆ initialize()

virtual void kanzi::connect::VirtualFileService::initialize ( InterfaceDomainBase domain,
ContentClientSharedPtr  contentClient,
WorkQueueInterface workQueue 
)
overridevirtual

◆ onReleaseSession()

virtual void kanzi::connect::VirtualFileService::onReleaseSession ( AbstractSessionSharedPtr  session)
overrideprotectedvirtual

◆ prepareForShutdown()

void kanzi::connect::VirtualFileService::prepareForShutdown ( )

Tell service that system is about to uninitialize, and no new requests should be added.

◆ processFileReadRequest()

virtual bool kanzi::connect::VirtualFileService::processFileReadRequest ( struct mg_connection *  connection)
overrideprotectedvirtual

Invoked to handle a content request.

Parameters
connectionThe civet connection.

Implements kanzi::connect::VirtualFileRequestHandler::ServiceInterface.

◆ processPostContentRequest()

virtual bool kanzi::connect::VirtualFileService::processPostContentRequest ( struct mg_connection *  connection)
overrideprotectedvirtual

Invoked to handle HTTP post request.

Parameters
connectionThe civet connection
Returns
If request is handled, true, otherwise false.

Implements kanzi::connect::VirtualFileRequestHandler::ServiceInterface.

◆ processRequestInternal()

bool kanzi::connect::VirtualFileService::processRequestInternal ( struct mg_connection *  connection,
const string &  uri 
)
protected

◆ processWork()

virtual void kanzi::connect::VirtualFileService::processWork ( VirtualFileWorkItemSharedPtr  workItem)
virtual

Process a work item from other services.

Parameters
workItemConnect work item to process and report status.

◆ provideAsFileThroughHttp()

virtual void kanzi::connect::VirtualFileService::provideAsFileThroughHttp ( VirtualFileWorkItemSharedPtr  workItem,
const string &  filepath 
)
overrideprotectedvirtual

Provide response as a path to existing file.

Parameters
workItemwhere to store the data
filepathfull path to local file

Implements kanzi::connect::VirtualFileLocalResponseInterface.

◆ provideAsHttpContent()

virtual void kanzi::connect::VirtualFileService::provideAsHttpContent ( VirtualFileWorkItemSharedPtr  workItem,
const string &  mime,
const unsigned char *  blob,
size_t  length 
)
overrideprotectedvirtual

Provide requested file as inline content through HTTP.

Parameters
workItemwhere to store the data
mimemime type of the data
blobbinary data buffer
lengthsize of binary data buffer

Implements kanzi::connect::VirtualFileLocalResponseInterface.

◆ provideAsRedirectUri()

virtual void kanzi::connect::VirtualFileService::provideAsRedirectUri ( VirtualFileWorkItemSharedPtr  workItem,
const string &  redirecturi 
)
overrideprotectedvirtual

Provide response as HTTP redirect.

Parameters
workItemwhere to store the data
redirectUriAddress where to redirect the client to.

Implements kanzi::connect::VirtualFileLocalResponseInterface.

◆ provideFileAsData()

virtual bool kanzi::connect::VirtualFileService::provideFileAsData ( const int &  requestHandle,
const string &  mime,
const string &  content 
)
overrideprotectedvirtual

◆ provideFileAsFilepath()

virtual bool kanzi::connect::VirtualFileService::provideFileAsFilepath ( const int &  requestHandle,
const string &  mime,
const string &  filepath 
)
overrideprotectedvirtual

◆ provideFileAsHttpRedirect()

virtual bool kanzi::connect::VirtualFileService::provideFileAsHttpRedirect ( const int &  requestHandle,
const string &  redirecturi 
)
overrideprotectedvirtual

◆ provideFileDirectly()

virtual bool kanzi::connect::VirtualFileService::provideFileDirectly ( const string &  uri,
vector< char > &  buffer,
const unsigned int  blockSize 
)
overrideprotectedvirtual

Provide response as file contents through the connection adapters.

Parameters
uriIdentifies the file
bufferThe data to provide
blockSizeDefines in what size chunks to send the file contents
Returns
bool indicating whether file transfer was initiated.

Implements kanzi::connect::VirtualFileLocalResponseInterface.

◆ registerPath() [1/2]

string kanzi::connect::VirtualFileService::registerPath ( const string &  scheme,
const string &  path,
VirtualFileProvider provider 
)

Registers a path to www server.

All requests towards the path will get forwarded to the provided file provider.

Parameters
schemeRequested protocol. Either HTTP or HTTPS expected. If you do not set a value, uses HTTP.
pathPath to register. Registering a path camera produces URI like http://<server>:port/camera/ so served path always ends with '/'.
providerThe file provider. Caller ensures the lifetime of the object as long as the corresponding registration is alive.
Returns
Full path to the URI where the files are serviced. In case of duplicate registration or another error, returns an empty string.

◆ registerPath() [2/2]

virtual string kanzi::connect::VirtualFileService::registerPath ( const string &  scheme,
const string &  path 
)
overrideprotectedvirtual

◆ requestResource()

virtual bool kanzi::connect::VirtualFileService::requestResource ( const string &  uri)
overrideprotectedvirtual

◆ setHttpServer()

void kanzi::connect::VirtualFileService::setHttpServer ( CivetServerSharedPtr  httpServer)

Set HTTP server to handle HTTP requests.

Parameters
httpServerHTTP server to handle HTTP requests.

◆ startFileResponse()

virtual void kanzi::connect::VirtualFileService::startFileResponse ( const int &  requestHandle,
const int &  blockSize,
const int &  numBlocks 
)
overrideprotectedvirtual

◆ uninitialize()

virtual void kanzi::connect::VirtualFileService::uninitialize ( )
overridevirtual

◆ unregisterPath() [1/2]

bool kanzi::connect::VirtualFileService::unregisterPath ( const string &  path,
VirtualFileProvider provider 
)

Unregisters previously registered path.

Both provided parameters must be provided.

Parameters
pathThe path to unregister.
providerThe provider that was previously used to register the path.
Returns
If handler is unregistered, true. If the handler with the provided criteria cannot found, false.

◆ unregisterPath() [2/2]

virtual bool kanzi::connect::VirtualFileService::unregisterPath ( const string &  path)
overrideprotectedvirtual

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