summaryrefslogtreecommitdiff
path: root/src/zmq.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zmq.cpp')
-rw-r--r--src/zmq.cpp131
1 files changed, 0 insertions, 131 deletions
diff --git a/src/zmq.cpp b/src/zmq.cpp
index 9ea106d..eb8cc40 100644
--- a/src/zmq.cpp
+++ b/src/zmq.cpp
@@ -40,7 +40,6 @@
#include <new>
#include "socket_base.hpp"
-#include "msg_content.hpp"
#include "stdint.hpp"
#include "config.hpp"
#include "likely.hpp"
@@ -70,136 +69,6 @@ const char *zmq_strerror (int errnum_)
return zmq::errno_to_string (errnum_);
}
-int zmq_msg_init (zmq_msg_t *msg_)
-{
- msg_->content = (zmq::msg_content_t*) ZMQ_VSM;
- msg_->flags = 0;
- msg_->vsm_size = 0;
- return 0;
-}
-
-int zmq_msg_init_size (zmq_msg_t *msg_, size_t size_)
-{
- if (size_ <= ZMQ_MAX_VSM_SIZE) {
- msg_->content = (zmq::msg_content_t*) ZMQ_VSM;
- msg_->flags = 0;
- msg_->vsm_size = (uint8_t) size_;
- }
- else {
- msg_->content =
- (zmq::msg_content_t*) malloc (sizeof (zmq::msg_content_t) + size_);
- if (!msg_->content) {
- errno = ENOMEM;
- return -1;
- }
- msg_->flags = 0;
-
- zmq::msg_content_t *content = (zmq::msg_content_t*) msg_->content;
- content->data = (void*) (content + 1);
- content->size = size_;
- content->ffn = NULL;
- content->hint = NULL;
- new (&content->refcnt) zmq::atomic_counter_t ();
- }
- return 0;
-}
-
-int zmq_msg_init_data (zmq_msg_t *msg_, void *data_, size_t size_,
- zmq_free_fn *ffn_, void *hint_)
-{
- msg_->content = (zmq::msg_content_t*) malloc (sizeof (zmq::msg_content_t));
- alloc_assert (msg_->content);
- msg_->flags = 0;
- zmq::msg_content_t *content = (zmq::msg_content_t*) msg_->content;
- content->data = data_;
- content->size = size_;
- content->ffn = ffn_;
- content->hint = hint_;
- new (&content->refcnt) zmq::atomic_counter_t ();
- return 0;
-}
-
-int zmq_msg_close (zmq_msg_t *msg_)
-{
- // For VSMs and delimiters there are no resources to free.
- if (msg_->content != (zmq::msg_content_t*) ZMQ_DELIMITER &&
- msg_->content != (zmq::msg_content_t*) ZMQ_VSM) {
-
- // If the content is not shared, or if it is shared and the reference.
- // count has dropped to zero, deallocate it.
- zmq::msg_content_t *content = (zmq::msg_content_t*) msg_->content;
- if (!(msg_->flags & ZMQ_MSG_SHARED) || !content->refcnt.sub (1)) {
-
- // We used "placement new" operator to initialize the reference.
- // counter so we call its destructor now.
- content->refcnt.~atomic_counter_t ();
-
- if (content->ffn)
- content->ffn (content->data, content->hint);
- free (content);
- }
- }
-
- // As a safety measure, let's make the deallocated message look like
- // an empty message.
- msg_->content = (zmq::msg_content_t*) ZMQ_VSM;
- msg_->flags = 0;
- msg_->vsm_size = 0;
-
- return 0;
-}
-
-int zmq_msg_move (zmq_msg_t *dest_, zmq_msg_t *src_)
-{
- zmq_msg_close (dest_);
- *dest_ = *src_;
- zmq_msg_init (src_);
- return 0;
-}
-
-int zmq_msg_copy (zmq_msg_t *dest_, zmq_msg_t *src_)
-{
- zmq_msg_close (dest_);
-
- // VSMs and delimiters require no special handling.
- if (src_->content != (zmq::msg_content_t*) ZMQ_DELIMITER &&
- src_->content != (zmq::msg_content_t*) ZMQ_VSM) {
-
- // One reference is added to shared messages. Non-shared messages
- // are turned into shared messages and reference count is set to 2.
- zmq::msg_content_t *content = (zmq::msg_content_t*) src_->content;
- if (src_->flags & ZMQ_MSG_SHARED)
- content->refcnt.add (1);
- else {
- src_->flags |= ZMQ_MSG_SHARED;
- content->refcnt.set (2);
- }
- }
-
- *dest_ = *src_;
- return 0;
-}
-
-void *zmq_msg_data (zmq_msg_t *msg_)
-{
- if (msg_->content == (zmq::msg_content_t*) ZMQ_VSM)
- return msg_->vsm_data;
- if (msg_->content == (zmq::msg_content_t*) ZMQ_DELIMITER)
- return NULL;
-
- return ((zmq::msg_content_t*) msg_->content)->data;
-}
-
-size_t zmq_msg_size (zmq_msg_t *msg_)
-{
- if (msg_->content == (zmq::msg_content_t*) ZMQ_VSM)
- return msg_->vsm_size;
- if (msg_->content == (zmq::msg_content_t*) ZMQ_DELIMITER)
- return 0;
-
- return ((zmq::msg_content_t*) msg_->content)->size;
-}
-
void *zmq_init (int io_threads_)
{
if (io_threads_ < 0) {