listener/connecter/init/session added

This commit is contained in:
Martin Sustrik
2009-08-12 09:40:16 +02:00
parent bda766ab40
commit 059beca59d
26 changed files with 1070 additions and 455 deletions

View File

@@ -21,35 +21,19 @@
#include "io_thread.hpp"
#include "err.hpp"
zmq::io_object_t::io_object_t (io_thread_t *parent_, object_t *owner_) :
object_t (parent_),
owner (owner_),
plugged_in (false),
terminated (false)
zmq::io_object_t::io_object_t (io_thread_t *io_thread_)
{
// Retrieve the poller from the thread we are running in.
poller = parent_->get_poller ();
poller = io_thread_->get_poller ();
}
zmq::io_object_t::~io_object_t ()
{
}
void zmq::io_object_t::process_plug ()
void zmq::io_object_t::set_io_thread (io_thread_t *io_thread_)
{
zmq_assert (!plugged_in);
// If termination of the object was already requested, destroy it and
// send the termination acknowledgement.
if (terminated) {
send_term_ack (owner);
delete this;
return;
}
// Notify the generic termination mechanism (io_object_t) that the object
// is already plugged in.
plugged_in = true;
poller = io_thread_->get_poller ();
}
zmq::handle_t zmq::io_object_t::add_fd (fd_t fd_)
@@ -106,26 +90,3 @@ void zmq::io_object_t::timer_event ()
{
zmq_assert (false);
}
void zmq::io_object_t::term ()
{
send_term_req (owner, this);
}
void zmq::io_object_t::process_term ()
{
zmq_assert (!terminated);
// If termination request has occured even before the object was plugged in
// wait till plugging in happens, then acknowledge the termination.
if (!plugged_in) {
terminated = true;
return;
}
// Otherwise, destroy the object and acknowledge the termination
// straight away.
send_term_ack (owner);
process_unplug ();
delete this;
}