diff --git a/src/pub.cpp b/src/pub.cpp index e84f3c30..e3d60696 100644 --- a/src/pub.cpp +++ b/src/pub.cpp @@ -18,6 +18,8 @@ */ #include "pub.hpp" +#include "pipe.hpp" +#include "err.hpp" #include "msg.hpp" zmq::pub_t::pub_t (class ctx_t *parent_, uint32_t tid_, int sid_) : @@ -30,6 +32,17 @@ zmq::pub_t::~pub_t () { } +void zmq::pub_t::xattach_pipe (pipe_t *pipe_, bool subscribe_to_all_) +{ + zmq_assert (pipe_); + + // Don't delay pipe termination as there is no one + // to receive the delimiter. + pipe_->set_nodelay (); + + xpub_t::xattach_pipe (pipe_, subscribe_to_all_); +} + int zmq::pub_t::xrecv (class msg_t *) { // Messages cannot be received from PUB socket. diff --git a/src/pub.hpp b/src/pub.hpp index 4fe3a79d..d3dc6c90 100644 --- a/src/pub.hpp +++ b/src/pub.hpp @@ -38,6 +38,7 @@ namespace zmq ~pub_t (); // Implementations of virtual functions from socket_base_t. + void xattach_pipe (zmq::pipe_t *pipe_, bool subscribe_to_all_ = false); int xrecv (zmq::msg_t *msg_); bool xhas_in ();