#include <RemoteViz/Rendering/Service.h>
Public Member Functions | |
void | dispatch () const |
bool | open (std::shared_ptr< const ServiceSettings > settings) |
bool | close () |
bool | isRunning () const |
void | createRenderArea (const std::string &id, unsigned int width, unsigned int height, std::shared_ptr< const RenderAreaHardware > renderAreaHardware) |
std::shared_ptr< RenderArea > | getRenderArea (const std::string &id) const |
std::shared_ptr< RenderArea > | getRenderArea (unsigned int index) const |
unsigned int | getNumRenderAreas () const |
std::shared_ptr< const ServiceSettings > | getSettings () const |
void | addListener (std::shared_ptr< ServiceListener > listener) |
void | removeListener (std::shared_ptr< ServiceListener > listener) |
void | removeAllListeners () |
unsigned int | getNumListeners () const |
std::shared_ptr< Client > | getClient (const std::string &id) const |
std::shared_ptr< Client > | getClient (unsigned int index) const |
unsigned int | getNumClients () const |
Static Public Member Functions | |
static Service * | instance () |
Defines the RemoteViz rendering service.
This class uses the singleton pattern restricting its instantiation to a single unique object in the program. Use the Service::instance() method to get the Service object.
To use RemoteViz, the service must first be opened with the method Service::open(). Create an instance of ServiceSettings to set properties such as the Service IP address and port.
Create an implementation of class ServiceListener to receive notifications from the Service. Register a listener using the addListener() method.
The Service object can also be used to query the current Clients and RenderAreas.
Thread-safety :
All methods in the RemoteViz API are thread-safe. I.e., they are guaranteed to be free of race conditions when accessed by multiple threads simultaneously. But note this limitation with the class Service:
ServiceSettings, ServiceListener, Client, RenderArea
void RemoteViz::Rendering::Service::addListener | ( | std::shared_ptr< ServiceListener > | listener | ) |
Adds a ServiceListener.
listener | : object that listens to the service events |
bool RemoteViz::Rendering::Service::close | ( | ) |
Closes the rendering service.
If renderAreas still exist, this method will dispose them and close the rendering service.
void RemoteViz::Rendering::Service::createRenderArea | ( | const std::string & | id, | |
unsigned int | width, | |||
unsigned int | height, | |||
std::shared_ptr< const RenderAreaHardware > | renderAreaHardware | |||
) |
Forces the creation of a renderArea.
This method is optional. The other way to create a renderArea is to return true to the callback ServiceListener::onPendingCreateRenderArea when a connection requests it.
If the renderArea already exists, the call will be ignored.
id | : ID identifying the RenderArea | |
width | : renderArea width | |
height | : renderArea height | |
renderAreaHardware | : renderArea hardware settings. |
void RemoteViz::Rendering::Service::dispatch | ( | ) | const |
This method has to be used with the ServiceSettings::INVENTOR_SERVICE and ServiceSettings::INDEPENDENT_SERVICE mode in a loop.
It processes all waiting RemoteViz events.
std::shared_ptr<Client> RemoteViz::Rendering::Service::getClient | ( | unsigned int | index | ) | const |
Gets a Client from index.
Range is [0..getNumClients - 1].
index | : index identifying the client |
std::shared_ptr<Client> RemoteViz::Rendering::Service::getClient | ( | const std::string & | id | ) | const |
Gets a Client from id.
Range is [0..getNumClients - 1].
id | : ID identifying the client |
unsigned int RemoteViz::Rendering::Service::getNumClients | ( | ) | const |
Gets the number of clients.
unsigned int RemoteViz::Rendering::Service::getNumListeners | ( | ) | const |
Gets the number of ServiceListener.
unsigned int RemoteViz::Rendering::Service::getNumRenderAreas | ( | ) | const |
Gets the number of renderAreas.
std::shared_ptr<RenderArea> RemoteViz::Rendering::Service::getRenderArea | ( | unsigned int | index | ) | const |
Gets a RenderArea from index.
Range is [0..getNumRenderAreas - 1].
index | : index identifying the renderArea |
std::shared_ptr<RenderArea> RemoteViz::Rendering::Service::getRenderArea | ( | const std::string & | id | ) | const |
Gets a RenderArea from id.
Range is [0..getNumRenderAreas - 1].
id | : ID identifying the RenderArea |
std::shared_ptr<const ServiceSettings> RemoteViz::Rendering::Service::getSettings | ( | ) | const |
Gets the settings of the service.
static Service* RemoteViz::Rendering::Service::instance | ( | ) | [static] |
Renderering service instance (Singleton).
bool RemoteViz::Rendering::Service::isRunning | ( | ) | const |
This method is used to know if the rendering service is running.
bool RemoteViz::Rendering::Service::open | ( | std::shared_ptr< const ServiceSettings > | settings | ) |
Opens the rendering service.
settings | : the settings of the instance. This object cannot be null. |
void RemoteViz::Rendering::Service::removeAllListeners | ( | ) |
Removes all ServiceListeners.
void RemoteViz::Rendering::Service::removeListener | ( | std::shared_ptr< ServiceListener > | listener | ) |
Removes a ServiceListener.
listener | : object that listens to the service events |