18zmq::socket_t*
pzmq_createClientSocket(zmq::context_t & context,
int type,
const std::string & address,
size_t port,
int immediate){
19 std::stringstream socketAddressData;
20 socketAddressData <<
"tcp://" << address <<
":" << port;
21 zmq::socket_t *socket =
new zmq::socket_t(context, type);
22 if(socket == NULL){
return NULL;}
24#if (CPPZMQ_VERSION_MAJOR*100 + CPPZMQ_VERSION_MINOR*10 + CPPZMQ_VERSION_PATCH) >= 471
25 socket->set(zmq::sockopt::immediate, immediate);
26 socket->set(zmq::sockopt::linger, -1);
28 int immediateVal(immediate);
29 socket->setsockopt(ZMQ_IMMEDIATE, &immediateVal,
sizeof(
int));
30 socket->setsockopt(ZMQ_LINGER, -1);
32 socket->connect(socketAddressData.str());
35#if (CPPZMQ_VERSION_MAJOR*100 + CPPZMQ_VERSION_MINOR*10 + CPPZMQ_VERSION_PATCH) >= 471
36 socket->set(zmq::sockopt::subscribe,
"");
37 socket->set(zmq::sockopt::conflate, 1);
39 socket->setsockopt(ZMQ_SUBSCRIBE,
"", 0);
41 socket->setsockopt(ZMQ_CONFLATE, &conflate,
sizeof(
int));
53 std::stringstream socketAddressData;
54 socketAddressData <<
"tcp://127.0.0.1:" << port;
55 zmq::socket_t *socket =
new zmq::socket_t(context, type);
57 socket->bind(socketAddressData.str());
58#if (CPPZMQ_VERSION_MAJOR*100 + CPPZMQ_VERSION_MINOR*10 + CPPZMQ_VERSION_PATCH) >= 471
59 socket->set(zmq::sockopt::linger, -1);
61 socket->setsockopt(ZMQ_LINGER, -1);
77zmq::socket_t*
pzmq_createServerSocket(zmq::context_t & context,
size_t port,
int type,
int nbBufferMessage,
int bufferSizeByte,
78 size_t threadAffinity, ssize_t dataRate)
81 bool b(socket != NULL);
101zmq::socket_t*
pzmq_createClientSocket(zmq::context_t & context,
const std::string & address,
size_t port,
int type,
int nbBufferMessage,
102 int bufferSizeByte,
size_t threadAffinity, ssize_t dataRate,
int immediate)
105 bool b(socket != NULL);
131#if (CPPZMQ_VERSION_MAJOR*100 + CPPZMQ_VERSION_MINOR*10 + CPPZMQ_VERSION_PATCH) >= 471
132 socket->set(zmq::sockopt::rcvhwm, nbBufferMessage);
135 socket->setsockopt(ZMQ_RCVHWM, &nbBufferMessage,
sizeof(
int));
136 socket->setsockopt(ZMQ_SNDHWM, &nbBufferMessage,
sizeof(
int));
147 if(socket != NULL && (type == ZMQ_PUB || type == ZMQ_SUB)){
148 int dataRateKbit(dataRate*8l);
149#if (CPPZMQ_VERSION_MAJOR*100 + CPPZMQ_VERSION_MINOR*10 + CPPZMQ_VERSION_PATCH) >= 471
150 socket->set(zmq::sockopt::rate, dataRateKbit);
153 socket->setsockopt(ZMQ_RATE, dataRateKbit);
164#if (CPPZMQ_VERSION_MAJOR*100 + CPPZMQ_VERSION_MINOR*10 + CPPZMQ_VERSION_PATCH) >= 471
165 socket->set(zmq::sockopt::rcvbuf, bufferSizeByte);
168 socket->setsockopt(ZMQ_RCVBUF, bufferSizeByte);
179#if (CPPZMQ_VERSION_MAJOR*100 + CPPZMQ_VERSION_MINOR*10 + CPPZMQ_VERSION_PATCH) >= 471
180 socket->set(zmq::sockopt::sndbuf, bufferSizeByte);
183 socket->setsockopt(ZMQ_SNDBUF, bufferSizeByte);
194#if (CPPZMQ_VERSION_MAJOR*100 + CPPZMQ_VERSION_MINOR*10 + CPPZMQ_VERSION_PATCH) >= 471
195 socket->set(zmq::sockopt::affinity, threadAffinity);
198 socket->setsockopt(ZMQ_AFFINITY, threadAffinity);
210void pzmq_setBufferSize(zmq::socket_t* socket,
int type,
int nbBufferMessage,
int dataRate,
size_t bufferSizeByte){
213 if(type == ZMQ_PULL || type == ZMQ_SUB){
215 }
else if(type == ZMQ_PUSH || type == ZMQ_PUB){
void pzmq_setSendBufferSize(zmq::socket_t *socket, int bufferSizeByte)
Set the size of the buffer to send messages.
zmq::socket_t * pzmq_createClientSocket(zmq::context_t &context, int type, const std::string &address, size_t port, int immediate)
Create a client socket to be used by the SocketManagerZMQ.
void pzmq_closeServerSocket(zmq::socket_t *&socket)
Close the given server socket.
zmq::socket_t * pzmq_createServerSocket(zmq::context_t &context, int type, size_t port)
Create a server socket to be used by the SocketManagerZMQ.
void pzmq_setThreadAffinity(zmq::socket_t *socket, size_t threadAffinity)
Set the thread affinity of zmq.
void pzmq_setRecvBufferSize(zmq::socket_t *socket, int bufferSizeByte)
Set the size of the buffer to received messages.
void pzmq_setBufferSize(zmq::socket_t *socket, int type, int nbBufferMessage, int dataRate, size_t bufferSizeByte)
Set the size of the buffer to send messages.
void pzmq_setDataRate(zmq::socket_t *socket, int type, int dataRate)
Set the data rate of the socket.
void pzmq_setNbMessageBuffer(zmq::socket_t *socket, int nbBufferMessage)
Set the number of messages in the messages buffer.