88#ifndef DOXYGEN_SHOULD_SKIP_THIS
91#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
92 int socketFileDescriptorReceptor;
93 socklen_t receptorAddressSize;
95 SOCKET socketFileDescriptorReceptor;
96 int receptorAddressSize;
98 struct sockaddr_in receptorAddress;
99 std::string receptorIP;
101 vpReceptor() : socketFileDescriptorReceptor(0), receptorAddressSize(), receptorAddress(), receptorIP() { }
106 struct sockaddr_in emitterAddress;
107#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
108 int socketFileDescriptorEmitter;
110 SOCKET socketFileDescriptorEmitter;
112 vpEmitter() : emitterAddress(), socketFileDescriptorEmitter(0)
114 emitterAddress.sin_family = AF_INET;
115 emitterAddress.sin_addr.s_addr = INADDR_ANY;
116 emitterAddress.sin_port = 0;
117 socketFileDescriptorEmitter = 0;
129#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
153 std::vector<int> privHandleRequests();
154 int privHandleFirstRequest();
156 void privReceiveRequest();
157 void privReceiveRequestFrom(
const unsigned int &receptorEmitting);
158 int privReceiveRequestOnce();
159 int privReceiveRequestOnceFrom(
const unsigned int &receptorEmitting);
167 int getReceptorIndex(
const char *name);
178 if (ind >= (
int)request_list.size() || ind < 0)
180 return request_list[(unsigned)ind]->getId();
192 void print(
const char *
id =
"");
194 template <
typename T>
int receive(T *
object,
const unsigned int &sizeOfObject =
sizeof(T));
195 template <
typename T>
196 int receiveFrom(T *
object,
const unsigned int &receptorEmitting,
const unsigned int &sizeOfObject =
sizeof(T));
198 std::vector<int> receiveRequest();
199 std::vector<int> receiveRequestFrom(
const unsigned int &receptorEmitting);
200 int receiveRequestOnce();
201 int receiveRequestOnceFrom(
const unsigned int &receptorEmitting);
203 std::vector<int> receiveAndDecodeRequest();
204 std::vector<int> receiveAndDecodeRequestFrom(
const unsigned int &receptorEmitting);
205 int receiveAndDecodeRequestOnce();
206 int receiveAndDecodeRequestOnceFrom(
const unsigned int &receptorEmitting);
208 void removeDecodingRequest(
const char *);
210 template <
typename T>
int send(T *
object,
const int unsigned &sizeOfObject =
sizeof(T));
211 template <
typename T>
int sendTo(T *
object,
const unsigned int &dest,
const unsigned int &sizeOfObject =
sizeof(T));
214 int sendRequestTo(
vpRequest &req,
const unsigned int &dest);
216 int sendAndEncodeRequest(
vpRequest &req);
217 int sendAndEncodeRequestTo(
vpRequest &req,
const unsigned int &dest);
289#ifdef TARGET_OS_IPHONE
315 else if (value == 0) {
322#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
323 numbytes = recv(
receptor_list[i].socketFileDescriptorReceptor, (
char *)(
void *)
object, sizeOfObject, 0);
325 numbytes = recv((
unsigned int)
receptor_list[i].socketFileDescriptorReceptor, (
char *)(
void *)
object,
326 (
int)sizeOfObject, 0);
329 std::cout <<
"Disconnected : " << inet_ntoa(
receptor_list[i].receptorAddress.sin_addr) << std::endl;
368 vpTRACE(
"No receptor at the specified index");
373#ifdef TARGET_OS_IPHONE
392 else if (value == 0) {
398#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
400 recv(
receptor_list[receptorEmitting].socketFileDescriptorReceptor, (
char *)(
void *)
object, sizeOfObject, 0);
402 numbytes = recv((
unsigned int)
receptor_list[receptorEmitting].socketFileDescriptorReceptor,
403 (
char *)(
void *)
object, (
int)sizeOfObject, 0);
406 std::cout <<
"Disconnected : " << inet_ntoa(
receptor_list[receptorEmitting].receptorAddress.sin_addr)