Skip to content

Commit

Permalink
Rebuild with string_view argument, like the constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
Crayon2000 committed Nov 2, 2022
1 parent c66fc60 commit c341dc1
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
31 changes: 31 additions & 0 deletions tests/message.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,37 @@ TEST_CASE("message equality non equal lhs empty", "[message]")
CHECK(msg_a != msg_b);
}

TEST_CASE("message rebuild with size", "[message]")
{
const zmq::message_t msg();
msg.rebuild(5)
CHECK(msg.size() == 5);
}

#if defined(ZMQ_CPP11) && !defined(ZMQ_CPP11_PARTIAL)
TEST_CASE("message rebuild with strings", "[message]")
{
SECTION("string")
{
const std::string hi(data);
zmq::message_t hi_msg();
hi_msg.rebuild(hi)
CHECK(2u == hi_msg.size());
CHECK(0 == memcmp(data, hi_msg.data(), 2));
}
#if CPPZMQ_HAS_STRING_VIEW
SECTION("string_view")
{
const std::string_view hi(data);
zmq::message_t hi_msg();
hi_msg.rebuild(hi)
CHECK(2u == hi_msg.size());
CHECK(0 == memcmp(data, hi_msg.data(), 2));
}
#endif
}
#endif

TEST_CASE("message to string", "[message]")
{
const zmq::message_t a;
Expand Down
7 changes: 7 additions & 0 deletions zmq.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -544,6 +544,13 @@ class message_t
rebuild(str.data(), str.size());
}

#if CPPZMQ_HAS_STRING_VIEW
void rebuild(std::string_view str)
{
rebuild(str.data(), str.size());
}
#endif

void rebuild(void *data_, size_t size_, free_fn *ffn_, void *hint_ = ZMQ_NULLPTR)
{
int rc = zmq_msg_close(&msg);
Expand Down

0 comments on commit c341dc1

Please sign in to comment.