diff options
Diffstat (limited to 'src/zmq_listener.cpp')
-rw-r--r-- | src/zmq_listener.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/zmq_listener.cpp b/src/zmq_listener.cpp index 463a1dd..c990468 100644 --- a/src/zmq_listener.cpp +++ b/src/zmq_listener.cpp @@ -18,12 +18,15 @@ */ #include "zmq_listener.hpp" -#include "zmq_engine.hpp" +#include "zmq_init.hpp" #include "io_thread.hpp" #include "err.hpp" -zmq::zmq_listener_t::zmq_listener_t (io_thread_t *parent_, object_t *owner_) : - io_object_t (parent_, owner_) +zmq::zmq_listener_t::zmq_listener_t (io_thread_t *parent_, object_t *owner_, + const options_t &options_) : + owned_t (parent_, owner_), + io_object_t (parent_), + options (options_) { } @@ -46,7 +49,7 @@ void zmq::zmq_listener_t::process_plug () handle = add_fd (tcp_listener.get_fd ()); set_pollin (handle); - io_object_t::process_plug (); + owned_t::process_plug (); } void zmq::zmq_listener_t::process_unplug () @@ -63,14 +66,12 @@ void zmq::zmq_listener_t::in_event () if (fd == retired_fd) return; - // TODO - zmq_assert (false); - -/* - object_t *engine = new zmq_engine_t (choose_io_thread (0), owner); - send_plug (engine); - send_own (owner, engine); -*/ + // Create an init object. + io_thread_t *io_thread = choose_io_thread (options.affinity); + zmq_init_t *init = new zmq_init_t (io_thread, owner, fd, false, options); + zmq_assert (init); + send_plug (init); + send_own (owner, init); } |