![]() |
Visual Servoing Platform version 3.7.0
|
#include <vpServer.h>
Public Member Functions | |
| vpServer () | |
| vpServer (const vpServer &server) | |
| VP_EXPLICIT | vpServer (const int &port) |
| vpServer (const std::string &adress_serv, const int &port_serv) | |
| vpServer & | operator= (const vpServer &server) |
| virtual | ~vpServer () VP_OVERRIDE |
| bool | checkForConnections () |
| bool | isStarted () const |
| unsigned int | getMaxNumberOfClients () const |
| unsigned int | getNumberOfClients () const |
| void | print () |
| bool | start () |
| void | setMaxNumberOfClients (const unsigned int &l) |
| void | addDecodingRequest (vpRequest *) |
| int | getReceptorIndex (const char *name) |
| std::string | getRequestIdFromIndex (const int &ind) |
| unsigned int | getMaxSizeReceivedMessage () |
| void | print (const char *id="") |
| template<typename T> | |
| int | receive (T *object, const unsigned int &sizeOfObject=sizeof(T)) |
| template<typename T> | |
| int | receiveFrom (T *object, const unsigned int &receptorEmitting, const unsigned int &sizeOfObject=sizeof(T)) |
| std::vector< int > | receiveRequest () |
| std::vector< int > | receiveRequestFrom (const unsigned int &receptorEmitting) |
| int | receiveRequestOnce () |
| int | receiveRequestOnceFrom (const unsigned int &receptorEmitting) |
| std::vector< int > | receiveAndDecodeRequest () |
| std::vector< int > | receiveAndDecodeRequestFrom (const unsigned int &receptorEmitting) |
| int | receiveAndDecodeRequestOnce () |
| int | receiveAndDecodeRequestOnceFrom (const unsigned int &receptorEmitting) |
| void | removeDecodingRequest (const char *) |
| template<typename T> | |
| int | send (T *object, const int unsigned &sizeOfObject=sizeof(T)) |
| template<typename T> | |
| int | send (T *object, const unsigned int &sizeOfObject) |
| template<typename T> | |
| int | sendTo (T *object, const unsigned int &dest, const unsigned int &sizeOfObject=sizeof(T)) |
| int | sendRequest (vpRequest &req) |
| int | sendRequestTo (vpRequest &req, const unsigned int &dest) |
| int | sendAndEncodeRequest (vpRequest &req) |
| int | sendAndEncodeRequestTo (vpRequest &req, const unsigned int &dest) |
| void | setMaxSizeReceivedMessage (const unsigned int &s) |
| void | setTimeoutSec (const long &sec) |
| void | setTimeoutUSec (const long &usec) |
| void | setVerbose (const bool &mode) |
Protected Attributes | |
| vpEmitter | emitter |
| std::vector< vpReceptor > | receptor_list |
| fd_set | readFileDescriptor |
| int | socketMax |
| std::vector< vpRequest * > | request_list |
| unsigned int | max_size_message |
| std::string | separator |
| std::string | beginning |
| std::string | end |
| std::string | param_sep |
| std::string | currentMessageReceived |
| struct timeval | tv |
| long | tv_sec |
| long | tv_usec |
| bool | verboseMode |
This class represents a Transmission Control Protocol (TCP) server.
TCP provides reliable, ordered delivery of a stream of bytes from a program on one computer to another program on another computer.
Example of server's code, receiving and sending basic message. It corresponds to the client used in the first example of vpClient class' documentation.
Example of server's code, receiving a vpImage on request form. It correspond to the client used in the second example of vpClient class' documentation.
Definition at line 161 of file vpServer.h.
| BEGIN_VISP_NAMESPACE vpServer::vpServer | ( | ) |
Construct a server on the machine launching it.
Definition at line 60 of file vpServer.cpp.
References vpNetwork::emitter, and vpERROR_TRACE.
Referenced by operator=(), and vpServer().
| vpServer::vpServer | ( | const vpServer & | server | ) |
Copy constructor.
| server | : Server to copy. |
Definition at line 84 of file vpServer.cpp.
References vpNetwork::vpNetwork(), and vpServer().
| vpServer::vpServer | ( | const int & | port_serv | ) |
Construct a server on the machine launching it, with a specified port.
| port_serv | : server's port. |
Definition at line 107 of file vpServer.cpp.
References vpNetwork::emitter, and vpERROR_TRACE.
| vpServer::vpServer | ( | const std::string & | adress_serv, |
| const int & | port_serv ) |
Construct a server on the machine at a given adress, with a specified port.
| adress_serv | : server's adress. |
| port_serv | : server's port. |
Definition at line 133 of file vpServer.cpp.
References vpNetwork::emitter, and vpERROR_TRACE.
|
virtual |
Shutdown the server.
Definition at line 158 of file vpServer.cpp.
References vpNetwork::emitter, and vpNetwork::receptor_list.
|
inherited |
Add a decoding request to the emitter. This request will be used to decode the received messages. Each request must have a different id.
| req | : Request to add. |
Definition at line 123 of file vpNetwork.cpp.
References vpRequest::getId(), and request_list.
| bool vpServer::checkForConnections | ( | ) |
Check if a client has connected or deconnected the server
Definition at line 235 of file vpServer.cpp.
References vpNetwork::emitter, vpNetwork::readFileDescriptor, vpNetwork::receptor_list, vpNetwork::socketMax, start(), vpNetwork::tv, vpNetwork::tv_sec, vpNetwork::tv_usec, and vpERROR_TRACE.
|
inline |
Get the maximum number of clients that can be connected to the server.
Definition at line 199 of file vpServer.h.
|
inlineinherited |
Get the maximum size that the emitter can receive (in request mode).
Definition at line 214 of file vpNetwork.h.
References max_size_message.
|
inline |
Get the number of clients connected to the server.
Definition at line 206 of file vpServer.h.
References vpNetwork::receptor_list.
|
inherited |
Get the receptor index from its name. The name can be either the IP, or its name on the network.
| name | : Name of the receptor. |
Definition at line 178 of file vpNetwork.cpp.
References receptor_list, and vpERROR_TRACE.
|
inlineinherited |
Get the Id of the request at the index ind.
| ind | : Index of the request. |
Definition at line 199 of file vpNetwork.h.
References request_list.
|
inline |
Check if the server is started.
Definition at line 190 of file vpServer.h.
Copy operator.
| server | : Server to copy. |
Definition at line 93 of file vpServer.cpp.
References vpServer().
|
inherited |
Print the receptors.
| id | : Message to display before the receptor's index. |
Definition at line 163 of file vpNetwork.cpp.
References receptor_list.
Referenced by vpClient::print(), and vpServer::print().
| void vpServer::print | ( | ) |
Print the connected clients.
Definition at line 324 of file vpServer.cpp.
References vpNetwork::print().
|
inherited |
Receives a object. The size of the object received is assumed to correspond to the size of the object type. Note that a message received may correspond to a disconnection signal.
| object | : Received object. |
| sizeOfObject | : Size of the received object. |
Definition at line 304 of file vpNetwork.h.
References readFileDescriptor, receptor_list, socketMax, tv, tv_sec, tv_usec, verboseMode, vpERROR_TRACE, and vpTRACE.
|
inherited |
Receives and decode requests until there is requests to receive.
Definition at line 415 of file vpNetwork.cpp.
References receiveRequest(), and request_list.
|
inherited |
Receives and decode requests, from a specific emitter, until there is request to receive.
| receptorEmitting | : Index of the receptor emitting the message |
Definition at line 442 of file vpNetwork.cpp.
References receiveRequestFrom(), and request_list.
|
inherited |
Receives a message once (in the limit of the Maximum message size value). This message can represent an entire request or not. Several calls to this function might be necessary to get the entire request. If it represents an entire request, it decodes the request.
Definition at line 472 of file vpNetwork.cpp.
References receiveRequestOnce(), and request_list.
|
inherited |
Receives a message once (in the limit of the Maximum message size value), from a specific emitter. This message can represent an entire request or not. Several calls to this function might be necessary to get the entire request. If it represents an entire request, it decodes the request.
| receptorEmitting | : Index of the receptor emitting the message. |
Definition at line 502 of file vpNetwork.cpp.
References receiveRequestOnceFrom(), and request_list.
|
inherited |
Receives a object from a receptor, by specifying its size or not. Note that a received message can correspond to a deconnection signal.
| object | : Received object. |
| receptorEmitting | : Index of the receptor emitting the message. |
| sizeOfObject | : Size of the received object. |
Definition at line 388 of file vpNetwork.h.
References readFileDescriptor, receptor_list, socketMax, tv, tv_sec, tv_usec, verboseMode, vpERROR_TRACE, and vpTRACE.
|
inherited |
Receive requests until there is requests to receive.
Definition at line 321 of file vpNetwork.cpp.
Referenced by receiveAndDecodeRequest().
|
inherited |
Receives requests, from a specific emitter, until there is request to receive.
| receptorEmitting | : Index of the receptor emitting the message |
Definition at line 344 of file vpNetwork.cpp.
Referenced by receiveAndDecodeRequestFrom().
|
inherited |
Receives a message once (in the limit of the Maximum message size value). This message can represent an entire request or not. Several calls to this function might be necessary to get the entire request.
Definition at line 368 of file vpNetwork.cpp.
Referenced by receiveAndDecodeRequestOnce().
|
inherited |
Receives a message once (in the limit of the Maximum message size value), from a specific emitter. This message can represent an entire request or not. Several calls to this function might be necessary to get the entire request.
| receptorEmitting | : Index of the receptor emitting the message. |
Definition at line 395 of file vpNetwork.cpp.
Referenced by receiveAndDecodeRequestOnceFrom().
|
inherited |
Delete a decoding request from the emitter.
| id | : Id of the request to delete. |
Definition at line 148 of file vpNetwork.cpp.
References request_list.
|
inherited |
References sendAndEncodeRequest(), sendAndEncodeRequestTo(), sendRequest(), sendRequestTo(), and sendTo().
|
inherited |
Send an object. The size of the received object is suppose to be the size of its type. Note that sending object containing pointers, virtual methods, etc, won't probably work.
| object | : Received object. |
| sizeOfObject | : Size of the object |
Definition at line 462 of file vpNetwork.h.
References receptor_list, verboseMode, and vpTRACE.
|
inherited |
Send and encode a request to the first receptor in the list.
| req | : Request to send. |
Definition at line 281 of file vpNetwork.cpp.
References vpRequest::encode(), and sendRequest().
Referenced by send().
|
inherited |
Send and encode a request to a specific receptor.
| req | : Request to send. |
| dest | : Index of the receptor receiving the request. |
Definition at line 301 of file vpNetwork.cpp.
References vpRequest::encode(), and sendRequestTo().
Referenced by send().
|
inherited |
Send a request to the first receptor in the list.
| req | : Request to send. |
Definition at line 213 of file vpNetwork.cpp.
References sendRequestTo().
Referenced by send(), and sendAndEncodeRequest().
|
inherited |
Send a request to a specific receptor.
| req | : Request to send. |
| dest | : Index of the receptor receiving the request. |
Definition at line 229 of file vpNetwork.cpp.
References beginning, end, vpRequest::getId(), param_sep, receptor_list, separator, vpRequest::size(), verboseMode, and vpTRACE.
Referenced by send(), sendAndEncodeRequestTo(), and sendRequest().
|
inherited |
Send an object. The size has to be specified.
| object | : Object to send. |
| dest | : Index of the receptor that you are sending the object. |
| sizeOfObject | : Size of the object. |
Definition at line 506 of file vpNetwork.h.
References receptor_list, verboseMode, and vpTRACE.
Referenced by send().
|
inline |
Set the maximum number of clients that can be connected to the server.
| l | : Maximum number of clients. |
Definition at line 219 of file vpServer.h.
|
inlineinherited |
Change the maximum size that the emitter can receive (in request mode).
| s | : new maximum size value. |
Definition at line 250 of file vpNetwork.h.
References max_size_message.
|
inlineinherited |
Change the time the emitter spend to check if he receives a message from a receptor. Initially this value is set to 10usec.
| sec | : new value in second. |
Definition at line 260 of file vpNetwork.h.
References tv_sec.
|
inlineinherited |
Change the time the emitter spend to check if he receives a message from a receptor. Initially this value is set to 10usec.
| usec | : new value in micro second. |
Definition at line 270 of file vpNetwork.h.
References tv_usec.
|
inlineinherited |
Set the verbose mode.
| mode | : Change the verbose mode. True to turn on, False to turn off. |
Definition at line 277 of file vpNetwork.h.
References verboseMode.
| bool vpServer::start | ( | ) |
Enable the server to wait for clients (on the limit of the maximum limit).
Definition at line 179 of file vpServer.cpp.
References vpNetwork::emitter, and vpERROR_TRACE.
Referenced by checkForConnections().
|
protectedinherited |
Definition at line 160 of file vpNetwork.h.
Referenced by operator=(), sendRequestTo(), and vpNetwork().
|
protectedinherited |
Definition at line 164 of file vpNetwork.h.
Referenced by operator=(), and vpNetwork().
|
protectedinherited |
Definition at line 146 of file vpNetwork.h.
Referenced by vpServer::checkForConnections(), operator=(), vpServer::start(), vpNetwork(), vpServer::vpServer(), vpServer::vpServer(), vpServer::vpServer(), and vpServer::~vpServer().
|
protectedinherited |
Definition at line 161 of file vpNetwork.h.
Referenced by operator=(), sendRequestTo(), and vpNetwork().
|
protectedinherited |
Definition at line 158 of file vpNetwork.h.
Referenced by getMaxSizeReceivedMessage(), operator=(), setMaxSizeReceivedMessage(), and vpNetwork().
|
protectedinherited |
Definition at line 162 of file vpNetwork.h.
Referenced by operator=(), sendRequestTo(), and vpNetwork().
|
protectedinherited |
Definition at line 148 of file vpNetwork.h.
Referenced by vpServer::checkForConnections(), operator=(), receive(), receiveFrom(), and vpNetwork().
|
protectedinherited |
Definition at line 147 of file vpNetwork.h.
Referenced by vpServer::checkForConnections(), vpClient::deconnect(), vpServer::getNumberOfClients(), vpClient::getNumberOfServers(), getReceptorIndex(), operator=(), print(), receive(), receiveFrom(), send(), sendRequestTo(), sendTo(), vpClient::stop(), vpNetwork(), and vpServer::~vpServer().
|
protectedinherited |
Definition at line 156 of file vpNetwork.h.
Referenced by addDecodingRequest(), getRequestIdFromIndex(), operator=(), receiveAndDecodeRequest(), receiveAndDecodeRequestFrom(), receiveAndDecodeRequestOnce(), receiveAndDecodeRequestOnceFrom(), removeDecodingRequest(), and vpNetwork().
|
protectedinherited |
Definition at line 159 of file vpNetwork.h.
Referenced by operator=(), sendRequestTo(), and vpNetwork().
|
protectedinherited |
Definition at line 150 of file vpNetwork.h.
Referenced by vpServer::checkForConnections(), operator=(), receive(), receiveFrom(), and vpNetwork().
|
protectedinherited |
Definition at line 166 of file vpNetwork.h.
Referenced by vpServer::checkForConnections(), operator=(), receive(), receiveFrom(), and vpNetwork().
|
protectedinherited |
Definition at line 167 of file vpNetwork.h.
Referenced by vpServer::checkForConnections(), operator=(), receive(), receiveFrom(), setTimeoutSec(), and vpNetwork().
|
protectedinherited |
Definition at line 168 of file vpNetwork.h.
Referenced by vpServer::checkForConnections(), operator=(), receive(), receiveFrom(), setTimeoutUSec(), and vpNetwork().
|
protectedinherited |
Definition at line 170 of file vpNetwork.h.
Referenced by operator=(), receive(), receiveFrom(), send(), sendRequestTo(), sendTo(), setVerbose(), and vpNetwork().