summaryrefslogtreecommitdiff
path: root/src/zmq.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zmq.cpp')
-rw-r--r--src/zmq.cpp52
1 files changed, 48 insertions, 4 deletions
diff --git a/src/zmq.cpp b/src/zmq.cpp
index eb8cc40..b40d8b2 100644
--- a/src/zmq.cpp
+++ b/src/zmq.cpp
@@ -32,8 +32,6 @@
#include <poll.h>
#endif
-#include "../include/zmq.h"
-
#include <string.h>
#include <errno.h>
#include <stdlib.h>
@@ -46,6 +44,7 @@
#include "clock.hpp"
#include "ctx.hpp"
#include "err.hpp"
+#include "msg.hpp"
#include "fd.hpp"
#if !defined ZMQ_HAVE_WINDOWS
@@ -57,6 +56,10 @@
#include <pgm/pgm.h>
#endif
+// Compile time check whether msg_t fits into zmq_msg_t.
+typedef char check_msg_t_size
+ [sizeof (zmq::msg_t) == sizeof (zmq_msg_t) ? 1 : -1];
+
void zmq_version (int *major_, int *minor_, int *patch_)
{
*major_ = ZMQ_VERSION_MAJOR;
@@ -260,7 +263,7 @@ int zmq_sendmsg (void *s_, zmq_msg_t *msg_, int flags_)
return -1;
}
int sz = (int) zmq_msg_size (msg_);
- int rc = (((zmq::socket_base_t*) s_)->send (msg_, flags_));
+ int rc = (((zmq::socket_base_t*) s_)->send ((zmq::msg_t*) msg_, flags_));
if (unlikely (rc < 0))
return -1;
return sz;
@@ -272,12 +275,53 @@ int zmq_recvmsg (void *s_, zmq_msg_t *msg_, int flags_)
errno = ENOTSOCK;
return -1;
}
- int rc = (((zmq::socket_base_t*) s_)->recv (msg_, flags_));
+ int rc = (((zmq::socket_base_t*) s_)->recv ((zmq::msg_t*) msg_, flags_));
if (unlikely (rc < 0))
return -1;
return (int) zmq_msg_size (msg_);
}
+int zmq_msg_init (zmq_msg_t *msg_)
+{
+ return ((zmq::msg_t*) msg_)->init ();
+}
+
+int zmq_msg_init_size (zmq_msg_t *msg_, size_t size_)
+{
+ return ((zmq::msg_t*) msg_)->init_size (size_);
+}
+
+int zmq_msg_init_data (zmq_msg_t *msg_, void *data_, size_t size_,
+ zmq_free_fn *ffn_, void *hint_)
+{
+ return ((zmq::msg_t*) msg_)->init_data (data_, size_, ffn_, hint_);
+}
+
+int zmq_msg_close (zmq_msg_t *msg_)
+{
+ return ((zmq::msg_t*) msg_)->close ();
+}
+
+int zmq_msg_move (zmq_msg_t *dest_, zmq_msg_t *src_)
+{
+ return ((zmq::msg_t*) dest_)->move (*(zmq::msg_t*) src_);
+}
+
+int zmq_msg_copy (zmq_msg_t *dest_, zmq_msg_t *src_)
+{
+ return ((zmq::msg_t*) dest_)->copy (*(zmq::msg_t*) src_);
+}
+
+void *zmq_msg_data (zmq_msg_t *msg_)
+{
+ return ((zmq::msg_t*) msg_)->data ();
+}
+
+size_t zmq_msg_size (zmq_msg_t *msg_)
+{
+ return ((zmq::msg_t*) msg_)->size ();
+}
+
#if defined ZMQ_FORCE_SELECT
#define ZMQ_POLL_BASED_ON_SELECT
#elif defined ZMQ_FORCE_POLL