diff options
Diffstat (limited to 'gr-zeromq/lib/push_msg_sink_impl.cc')
-rw-r--r-- | gr-zeromq/lib/push_msg_sink_impl.cc | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/gr-zeromq/lib/push_msg_sink_impl.cc b/gr-zeromq/lib/push_msg_sink_impl.cc index b32bea620b..08b2eff40d 100644 --- a/gr-zeromq/lib/push_msg_sink_impl.cc +++ b/gr-zeromq/lib/push_msg_sink_impl.cc @@ -28,7 +28,9 @@ push_msg_sink_impl::push_msg_sink_impl(char* address, int timeout, bool bind) : gr::block("push_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_PUSH) { int major, minor, patch; zmq::version(&major, &minor, &patch); @@ -37,28 +39,20 @@ push_msg_sink_impl::push_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_PUSH); - 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); }); } -push_msg_sink_impl::~push_msg_sink_impl() -{ - d_socket->close(); - delete d_socket; - delete d_context; -} +push_msg_sink_impl::~push_msg_sink_impl() {} void push_msg_sink_impl::handler(pmt::pmt_t msg) { @@ -69,9 +63,9 @@ void push_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 } |