diff options
Diffstat (limited to 'gr-zeromq/lib/pub_msg_sink_impl.cc')
-rw-r--r-- | gr-zeromq/lib/pub_msg_sink_impl.cc | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/gr-zeromq/lib/pub_msg_sink_impl.cc b/gr-zeromq/lib/pub_msg_sink_impl.cc index 232597e814..c88f9e8f41 100644 --- a/gr-zeromq/lib/pub_msg_sink_impl.cc +++ b/gr-zeromq/lib/pub_msg_sink_impl.cc @@ -28,7 +28,9 @@ pub_msg_sink_impl::pub_msg_sink_impl(char* address, int timeout, bool bind) : gr::block("pub_msg_sink", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)), - d_timeout(timeout) + d_timeout(timeout), + d_context(1), + d_socket(d_context, ZMQ_PUB) { int major, minor, patch; zmq::version(&major, &minor, &patch); @@ -37,28 +39,20 @@ pub_msg_sink_impl::pub_msg_sink_impl(char* address, int timeout, bool bind) d_timeout = timeout * 1000; } - d_context = new zmq::context_t(1); - d_socket = new zmq::socket_t(*d_context, ZMQ_PUB); - int time = 0; - d_socket->setsockopt(ZMQ_LINGER, &time, sizeof(time)); + d_socket.setsockopt(ZMQ_LINGER, &time, sizeof(time)); if (bind) { - d_socket->bind(address); + d_socket.bind(address); } else { - d_socket->connect(address); + d_socket.connect(address); } message_port_register_in(pmt::mp("in")); set_msg_handler(pmt::mp("in"), [this](pmt::pmt_t msg) { this->handler(msg); }); } -pub_msg_sink_impl::~pub_msg_sink_impl() -{ - d_socket->close(); - delete d_socket; - delete d_context; -} +pub_msg_sink_impl::~pub_msg_sink_impl() {} void pub_msg_sink_impl::handler(pmt::pmt_t msg) { @@ -69,9 +63,9 @@ void pub_msg_sink_impl::handler(pmt::pmt_t msg) memcpy(zmsg.data(), s.c_str(), s.size()); #if USE_NEW_CPPZMQ_SEND_RECV - d_socket->send(zmsg, zmq::send_flags::none); + d_socket.send(zmsg, zmq::send_flags::none); #else - d_socket->send(zmsg); + d_socket.send(zmsg); #endif } |