libzmq  master
ZeroMQ C++ Core Engine (LIBZMQ)
zmq::mailbox_safe_t Class Reference

#include <mailbox_safe.hpp>

Inheritance diagram for zmq::mailbox_safe_t:
Collaboration diagram for zmq::mailbox_safe_t:

Public Member Functions

 mailbox_safe_t (mutex_t *sync_)
 
 ~mailbox_safe_t ()
 
void add_signaler (signaler_t *signaler)
 
void clear_signalers ()
 
int recv (command_t *cmd_, int timeout_)
 
void remove_signaler (signaler_t *signaler)
 
void send (const command_t &cmd_)
 
- Public Member Functions inherited from zmq::i_mailbox
virtual ~i_mailbox ()
 

Private Types

typedef ypipe_t< command_t, command_pipe_granularitycpipe_t
 

Private Member Functions

 mailbox_safe_t (const mailbox_safe_t &)
 
const mailbox_safe_toperator= (const mailbox_safe_t &)
 

Private Attributes

condition_variable_t cond_var
 
cpipe_t cpipe
 
std::vector< zmq::signaler_t * > signalers
 
mutex_tsync
 

Detailed Description

Definition at line 49 of file mailbox_safe.hpp.

Member Typedef Documentation

Constructor & Destructor Documentation

zmq::mailbox_safe_t::mailbox_safe_t ( mutex_t sync_)

Definition at line 35 of file mailbox_safe.cpp.

References cpipe, zmq::ypipe_t< T, N >::read(), and zmq_assert.

Here is the call graph for this function:

zmq::mailbox_safe_t::~mailbox_safe_t ( )

Definition at line 45 of file mailbox_safe.cpp.

References zmq::mutex_t::lock(), sync, and zmq::mutex_t::unlock().

Here is the call graph for this function:

zmq::mailbox_safe_t::mailbox_safe_t ( const mailbox_safe_t )
private

Member Function Documentation

void zmq::mailbox_safe_t::add_signaler ( signaler_t signaler)

Definition at line 55 of file mailbox_safe.cpp.

References signalers.

void zmq::mailbox_safe_t::clear_signalers ( )

Definition at line 74 of file mailbox_safe.cpp.

References signalers.

const mailbox_safe_t& zmq::mailbox_safe_t::operator= ( const mailbox_safe_t )
private
int zmq::mailbox_safe_t::recv ( command_t cmd_,
int  timeout_ 
)
virtual

Implements zmq::i_mailbox.

Definition at line 95 of file mailbox_safe.cpp.

References cond_var, cpipe, errno_assert, zmq::ypipe_t< T, N >::read(), sync, and zmq::condition_variable_t::wait().

Here is the call graph for this function:

void zmq::mailbox_safe_t::remove_signaler ( signaler_t signaler)

Definition at line 60 of file mailbox_safe.cpp.

References signalers.

void zmq::mailbox_safe_t::send ( const command_t cmd_)
virtual

Member Data Documentation

condition_variable_t zmq::mailbox_safe_t::cond_var
private

Definition at line 81 of file mailbox_safe.hpp.

Referenced by recv(), and send().

cpipe_t zmq::mailbox_safe_t::cpipe
private

Definition at line 78 of file mailbox_safe.hpp.

Referenced by mailbox_safe_t(), recv(), and send().

std::vector<zmq::signaler_t* > zmq::mailbox_safe_t::signalers
private

Definition at line 86 of file mailbox_safe.hpp.

Referenced by add_signaler(), clear_signalers(), remove_signaler(), and send().

mutex_t* zmq::mailbox_safe_t::sync
private

Definition at line 84 of file mailbox_safe.hpp.

Referenced by recv(), send(), and ~mailbox_safe_t().