Skip to content

Commit b65dde8

Browse files
authored
Add support for socket_ref to multipart_t ctor/send/recv (#487)
* Add support for socket_ref to multipart_t ctor/send/recv Fixes #448
1 parent 545b12c commit b65dde8

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

tests/multipart.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22
#include <zmq_addon.hpp>
33

44
#ifdef ZMQ_HAS_RVALUE_REFS
5+
6+
#ifdef ZMQ_CPP17
7+
static_assert(std::is_invocable<decltype(&zmq::multipart_t::send),
8+
zmq::multipart_t *,
9+
zmq::socket_ref,
10+
int>::value,
11+
"Can't multipart_t::send with socket_ref");
12+
static_assert(std::is_invocable<decltype(&zmq::multipart_t::recv),
13+
zmq::multipart_t *,
14+
zmq::socket_ref,
15+
int>::value,
16+
"Can't multipart_t::recv with socket_ref");
17+
#endif
18+
static_assert(std::is_constructible<zmq::multipart_t, zmq::socket_ref>::value,
19+
"Can't construct with socket_ref");
20+
521
/// \todo split this up into separate test cases
622
///
723
TEST_CASE("multipart legacy test", "[multipart]")

zmq_addon.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ class multipart_t
331331
multipart_t() {}
332332

333333
// Construct from socket receive
334-
multipart_t(socket_t &socket) { recv(socket); }
334+
multipart_t(socket_ref socket) { recv(socket); }
335335

336336
// Construct from memory block
337337
multipart_t(const void *src, size_t size) { addmem(src, size); }
@@ -393,7 +393,7 @@ class multipart_t
393393
bool empty() const { return m_parts.empty(); }
394394

395395
// Receive multipart message from socket
396-
bool recv(socket_t &socket, int flags = 0)
396+
bool recv(socket_ref socket, int flags = 0)
397397
{
398398
clear();
399399
bool more = true;
@@ -413,7 +413,7 @@ class multipart_t
413413
}
414414

415415
// Send multipart message to socket
416-
bool send(socket_t &socket, int flags = 0)
416+
bool send(socket_ref socket, int flags = 0)
417417
{
418418
flags &= ~(ZMQ_SNDMORE);
419419
bool more = size() > 0;

0 commit comments

Comments
 (0)