Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion tests/message.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,22 @@ TEST_CASE("message is shared", "[message]")
size_t msg_sz = 1024; // large enough to be a type_lmsg
zmq::message_t msg1(msg_sz);
zmq::message_t msg2;
msg2.copy(&msg1);
msg2.copy(msg1);
CHECK(msg1.get(ZMQ_SHARED) == 1);
CHECK(msg2.get(ZMQ_SHARED) == 1);
CHECK(msg1.size() == msg_sz);
CHECK(msg2.size() == msg_sz);
}

TEST_CASE("message move is not shared", "[message]")
{
size_t msg_sz = 1024; // large enough to be a type_lmsg
zmq::message_t msg1(msg_sz);
zmq::message_t msg2;
msg2.move(msg1);
CHECK(msg1.get(ZMQ_SHARED) == 0);
CHECK(msg2.get(ZMQ_SHARED) == 0);
CHECK(msg2.size() == msg_sz);
CHECK(msg1.size() == 0);
}
#endif
16 changes: 16 additions & 0 deletions zmq.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -335,20 +335,36 @@ class message_t
throw error_t();
}

ZMQ_DEPRECATED("from 4.3.1, use move taking non-const reference instead")
void move(message_t const *msg_)
{
int rc = zmq_msg_move(&msg, const_cast<zmq_msg_t *>(&(msg_->msg)));
if (rc != 0)
throw error_t();
}

void move(message_t &msg_)
{
int rc = zmq_msg_move(&msg, &msg_.msg);
if (rc != 0)
throw error_t();
}

ZMQ_DEPRECATED("from 4.3.1, use copy taking non-const reference instead")
void copy(message_t const *msg_)
{
int rc = zmq_msg_copy(&msg, const_cast<zmq_msg_t *>(&(msg_->msg)));
if (rc != 0)
throw error_t();
}

void copy(message_t &msg_)
{
int rc = zmq_msg_copy(&msg, &msg_.msg);
if (rc != 0)
throw error_t();
}

bool more() const ZMQ_NOTHROW
{
int rc = zmq_msg_more(const_cast<zmq_msg_t *>(&msg));
Expand Down