45 #include <visp/vpConfig.h>
46 #include <visp/vpRequest.h>
55 # include <sys/socket.h>
56 # include <netinet/in.h>
57 # include <arpa/inet.h>
92 SOCKET socketFileDescriptorReceptor;
93 int receptorAddressSize;
95 struct sockaddr_in receptorAddress;
100 struct sockaddr_in emitterAdress;
104 SOCKET socketFileDescriptorEmitter;
140 std::vector<int> _handleRequests();
141 int _handleFirstRequest();
143 void _receiveRequest();
144 void _receiveRequestFrom(
const unsigned int &receptorEmitting);
145 int _receiveRequestOnce();
146 int _receiveRequestOnceFrom(
const unsigned int &receptorEmitting);
155 int getReceptorIndex(
const char *name);
165 if(ind >= (
int)request_list.size() || ind < 0)
167 return request_list[(unsigned)ind]->getId();
179 void print(
const char *
id =
"");
182 int receive(T*
object,
const unsigned int &sizeOfObject =
sizeof(T));
184 int receiveFrom(T*
object,
const unsigned int &receptorEmitting,
const unsigned int &sizeOfObject =
sizeof(T));
186 std::vector<int> receiveRequest();
187 std::vector<int> receiveRequestFrom(
const unsigned int &receptorEmitting);
188 int receiveRequestOnce();
189 int receiveRequestOnceFrom(
const unsigned int &receptorEmitting);
191 std::vector<int> receiveAndDecodeRequest();
192 std::vector<int> receiveAndDecodeRequestFrom(
const unsigned int &receptorEmitting);
193 int receiveAndDecodeRequestOnce();
194 int receiveAndDecodeRequestOnceFrom(
const unsigned int &receptorEmitting);
196 void removeDecodingRequest(
const char *);
199 int send(T*
object,
const int unsigned &sizeOfObject =
sizeof(T));
201 int sendTo(T*
object,
const unsigned int &dest,
const unsigned int &sizeOfObject =
sizeof(T));
204 int sendRequestTo(
vpRequest &req,
const unsigned int &dest);
206 int sendAndEncodeRequest(
vpRequest &req);
207 int sendAndEncodeRequestTo(
vpRequest &req,
const unsigned int &dest);
309 numbytes = recv(
receptor_list[i].socketFileDescriptorReceptor, (
char*)(
void*)
object, sizeOfObject, 0);
311 numbytes = recv((
unsigned int)
receptor_list[i].socketFileDescriptorReceptor, (
char*)(
void*)
object, (
int)sizeOfObject, 0);
315 std::cout <<
"Disconnected : " << inet_ntoa(
receptor_list[i].receptorAddress.sin_addr) << std::endl;
355 vpTRACE(
"No receptor at the specified index" );
382 numbytes = recv(
receptor_list[receptorEmitting].socketFileDescriptorReceptor, (
char*)(
void*)
object, sizeOfObject, 0);
384 numbytes = recv((
unsigned int)
receptor_list[receptorEmitting].socketFileDescriptorReceptor, (
char*)(
void*)
object, (
int)sizeOfObject, 0);
388 std::cout <<
"Disconnected : " << inet_ntoa(
receptor_list[receptorEmitting].receptorAddress.sin_addr) << std::endl;
429 #if ! defined(APPLE) && ! defined(WIN32)
430 flags = MSG_NOSIGNAL;
434 return sendto(
receptor_list[0].socketFileDescriptorReceptor, (
const char*)(
void*)
object, sizeOfObject,
437 return sendto(
receptor_list[0].socketFileDescriptorReceptor, (
const char*)(
void*)
object, (
int)sizeOfObject,
470 vpTRACE(
"No receptor at the specified index." );
475 #if ! defined(APPLE) && ! defined(WIN32)
476 flags = MSG_NOSIGNAL;
480 return sendto(
receptor_list[dest].socketFileDescriptorReceptor, (
const char*)(
void*)
object, sizeOfObject,
483 return sendto(
receptor_list[dest].socketFileDescriptorReceptor, (
const char*)(
void*)
object, (
int)sizeOfObject,