libzmq master
The Intelligent Transport Layer
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | Friends

zmq::socket_base_t Class Reference

#include <socket_base.hpp>

Inheritance diagram for zmq::socket_base_t:
Collaboration diagram for zmq::socket_base_t:

List of all members.

Public Member Functions

int bind (const char *addr_)
bool check_tag ()
int close ()
int connect (const char *addr_)
int get_array_index ()
ctx_tget_ctx ()
mailbox_tget_mailbox ()
uint32_t get_tid ()
int getsockopt (int option_, void *optval_, size_t *optvallen_)
bool has_in ()
bool has_out ()
void hiccuped (pipe_t *pipe_)
void in_event ()
void inc_seqnum ()
void out_event ()
void process_command (struct command_t &cmd_)
void read_activated (pipe_t *pipe_)
int recv (class msg_t *msg_, int flags_)
void register_term_acks (int count_)
int send (class msg_t *msg_, int flags_)
void set_array_index (int index_)
int setsockopt (int option_, const void *optval_, size_t optvallen_)
void start_reaping (poller_t *poller_)
void stop ()
void terminated (pipe_t *pipe_)
void timer_event (int id_)
void unregister_term_ack ()
void write_activated (pipe_t *pipe_)

Static Public Member Functions

static socket_base_tcreate (int type_, class ctx_t *parent_, uint32_t tid_)

Protected Member Functions

 socket_base_t (class ctx_t *parent_, uint32_t tid_)
virtual ~socket_base_t ()
class io_thread_tchoose_io_thread (uint64_t affinity_)
void destroy_socket (class socket_base_t *socket_)
struct endpoint_t find_endpoint (const char *addr_)
bool is_terminating ()
void launch_child (own_t *object_)
void launch_sibling (own_t *object_)
void log (const char *format_,...)
virtual void process_activate_read ()
virtual void process_activate_write (uint64_t msgs_read_)
virtual void process_attach (struct i_engine *engine_)
void process_destroy ()
virtual void process_hiccup (void *pipe_)
virtual void process_pipe_term ()
virtual void process_pipe_term_ack ()
virtual void process_plug ()
virtual void process_reap (class socket_base_t *socket_)
virtual void process_reaped ()
int register_endpoint (const char *addr_, struct endpoint_t &endpoint_)
void send_activate_read (class pipe_t *destination_)
void send_activate_write (class pipe_t *destination_, uint64_t msgs_read_)
void send_attach (class session_base_t *destination_, struct i_engine *engine_, bool inc_seqnum_=true)
void send_bind (class own_t *destination_, class pipe_t *pipe_, bool inc_seqnum_=true)
void send_done ()
void send_hiccup (class pipe_t *destination_, void *pipe_)
void send_own (class own_t *destination_, class own_t *object_)
void send_pipe_term (class pipe_t *destination_)
void send_pipe_term_ack (class pipe_t *destination_)
void send_plug (class own_t *destination_, bool inc_seqnum_=true)
void send_reap (class socket_base_t *socket_)
void send_reaped ()
void send_stop ()
void send_term (class own_t *destination_, int linger_)
void send_term_ack (class own_t *destination_)
void send_term_req (class own_t *destination_, class own_t *object_)
void terminate ()
void unregister_endpoints (class socket_base_t *socket_)
virtual void xattach_pipe (class pipe_t *pipe_)=0
virtual bool xhas_in ()
virtual bool xhas_out ()
virtual void xhiccuped (pipe_t *pipe_)
virtual void xread_activated (pipe_t *pipe_)
virtual int xrecv (class msg_t *msg_, int flags_)
virtual int xsend (class msg_t *msg_, int flags_)
virtual int xsetsockopt (int option_, const void *optval_, size_t optvallen_)
virtual void xterminated (pipe_t *pipe_)=0
virtual void xwrite_activated (pipe_t *pipe_)

Protected Attributes

options_t options

Private Types

typedef array_t< pipe_t, 3 > pipes_t

Private Member Functions

 socket_base_t (const socket_base_t &)
void attach_pipe (class pipe_t *pipe_)
void check_destroy ()
int check_protocol (const std::string &protocol_)
void extract_flags (msg_t *msg_)
const socket_base_toperator= (const socket_base_t &)
int parse_uri (const char *uri_, std::string &protocol_, std::string &address_)
void process_bind (class pipe_t *pipe_)
int process_commands (int timeout_, bool throttle_)
void process_stop ()
void process_term (int linger_)
void process_unplug ()

Private Attributes

bool ctx_terminated
bool destroyed
poller_t::handle_t handle
uint64_t last_tsc
mailbox_t mailbox
pipes_t pipes
poller_t * poller
bool rcvmore
uint32_t tag
int ticks

Friends

class reaper_t

Detailed Description

Definition at line 41 of file socket_base.hpp.


Member Typedef Documentation

Definition at line 175 of file socket_base.hpp.


Constructor & Destructor Documentation

zmq::socket_base_t::socket_base_t ( class ctx_t parent_,
uint32_t  tid_ 
) [protected]

Definition at line 117 of file socket_base.cpp.

zmq::socket_base_t::~socket_base_t ( ) [protected, virtual]

Definition at line 128 of file socket_base.cpp.

References zmq_assert.

zmq::socket_base_t::socket_base_t ( const socket_base_t ) [private]

Member Function Documentation

void zmq::socket_base_t::attach_pipe ( class pipe_t pipe_) [private]

Definition at line 211 of file socket_base.cpp.

References zmq::pipe_t::set_event_sink(), and zmq::pipe_t::terminate().

Here is the call graph for this function:

int zmq::socket_base_t::bind ( const char *  addr_)

Definition at line 295 of file socket_base.cpp.

References alloc_assert, EMTHREAD, ETERM, zmq::ipc_listener_t::set_address(), zmq::tcp_listener_t::set_address(), unlikely, and zmq_assert.

Referenced by zmq::ctx_t::ctx_t().

Here is the call graph for this function:

Here is the caller graph for this function:

void zmq::socket_base_t::check_destroy ( ) [private]

Definition at line 814 of file socket_base.cpp.

References zmq::own_t::process_destroy().

Here is the call graph for this function:

int zmq::socket_base_t::check_protocol ( const std::string &  protocol_) [private]

Definition at line 170 of file socket_base.cpp.

References ENOCOMPATPROTO, EPROTONOSUPPORT, ZMQ_PUB, ZMQ_SUB, ZMQ_XPUB, and ZMQ_XSUB.

bool zmq::socket_base_t::check_tag ( )

Definition at line 65 of file socket_base.cpp.

References tag.

zmq::io_thread_t * zmq::object_t::choose_io_thread ( uint64_t  affinity_) [protected, inherited]

Definition at line 160 of file object.cpp.

References zmq::object_t::choose_io_thread().

Referenced by zmq::object_t::choose_io_thread().

Here is the call graph for this function:

Here is the caller graph for this function:

int zmq::socket_base_t::close ( )

Definition at line 623 of file socket_base.cpp.

int zmq::socket_base_t::connect ( const char *  addr_)
zmq::socket_base_t * zmq::socket_base_t::create ( int  type_,
class ctx_t parent_,
uint32_t  tid_ 
) [static]

Definition at line 70 of file socket_base.cpp.

References alloc_assert, ZMQ_PAIR, ZMQ_PUB, ZMQ_PULL, ZMQ_PUSH, ZMQ_REP, ZMQ_REQ, ZMQ_SUB, ZMQ_XPUB, ZMQ_XREP, ZMQ_XREQ, and ZMQ_XSUB.

Referenced by zmq::ctx_t::create_socket().

Here is the caller graph for this function:

void zmq::object_t::destroy_socket ( class socket_base_t socket_) [protected, inherited]

Definition at line 147 of file object.cpp.

void zmq::socket_base_t::extract_flags ( msg_t msg_) [private]
zmq::endpoint_t zmq::object_t::find_endpoint ( const char *  addr_) [read, protected, inherited]

Definition at line 142 of file object.cpp.

int zmq::array_item_t< 0 >::get_array_index ( ) [inline, inherited]

Definition at line 56 of file array.hpp.

zmq::ctx_t * zmq::object_t::get_ctx ( ) [inherited]

Definition at line 54 of file object.cpp.

zmq::mailbox_t * zmq::socket_base_t::get_mailbox ( )

Definition at line 136 of file socket_base.cpp.

Referenced by zmq::ctx_t::create_socket().

Here is the caller graph for this function:

uint32_t zmq::object_t::get_tid ( ) [inherited]

Definition at line 49 of file object.cpp.

Referenced by zmq::ctx_t::destroy_socket(), and zmq::object_t::send_command().

Here is the caller graph for this function:

int zmq::socket_base_t::getsockopt ( int  option_,
void *  optval_,
size_t *  optvallen_ 
)

Definition at line 246 of file socket_base.cpp.

References errno_assert, ETERM, unlikely, ZMQ_EVENTS, ZMQ_FD, ZMQ_POLLIN, ZMQ_POLLOUT, and ZMQ_RCVMORE.

bool zmq::socket_base_t::has_in ( )

Definition at line 633 of file socket_base.cpp.

bool zmq::socket_base_t::has_out ( )

Definition at line 638 of file socket_base.cpp.

void zmq::socket_base_t::hiccuped ( pipe_t pipe_) [virtual]

Implements zmq::i_pipe_events.

Definition at line 843 of file socket_base.cpp.

void zmq::socket_base_t::in_event ( ) [virtual]

Implements zmq::i_poll_events.

Definition at line 794 of file socket_base.cpp.

void zmq::own_t::inc_seqnum ( ) [inherited]
bool zmq::own_t::is_terminating ( ) [protected, inherited]

Definition at line 156 of file own.cpp.

void zmq::own_t::launch_child ( own_t object_) [protected, inherited]

Definition at line 71 of file own.cpp.

References zmq::own_t::set_owner().

Here is the call graph for this function:

void zmq::own_t::launch_sibling ( own_t object_) [protected, inherited]

Definition at line 83 of file own.cpp.

References zmq::own_t::set_owner().

Here is the call graph for this function:

void zmq::object_t::log ( const char *  format_,
  ... 
) [protected, inherited]

Definition at line 152 of file object.cpp.

const socket_base_t& zmq::socket_base_t::operator= ( const socket_base_t ) [private]
void zmq::socket_base_t::out_event ( ) [virtual]

Implements zmq::i_poll_events.

Definition at line 804 of file socket_base.cpp.

References zmq_assert.

int zmq::socket_base_t::parse_uri ( const char *  uri_,
std::string &  protocol_,
std::string &  address_ 
) [private]

Definition at line 150 of file socket_base.cpp.

References zmq_assert.

void zmq::object_t::process_activate_read ( ) [protected, virtual, inherited]

Reimplemented in zmq::pipe_t.

Definition at line 390 of file object.cpp.

References zmq_assert.

void zmq::object_t::process_activate_write ( uint64_t  msgs_read_) [protected, virtual, inherited]

Reimplemented in zmq::pipe_t.

Definition at line 395 of file object.cpp.

References zmq_assert.

void zmq::object_t::process_attach ( struct i_engine engine_) [protected, virtual, inherited]

Reimplemented in zmq::session_base_t.

Definition at line 380 of file object.cpp.

References zmq_assert.

void zmq::socket_base_t::process_bind ( class pipe_t pipe_) [private, virtual]

Reimplemented from zmq::object_t.

Definition at line 721 of file socket_base.cpp.

void zmq::object_t::process_command ( struct command_t cmd_) [inherited]
int zmq::socket_base_t::process_commands ( int  timeout_,
bool  throttle_ 
) [private]

Definition at line 656 of file socket_base.cpp.

References zmq::command_t::destination, errno_assert, ETERM, zmq::object_t::process_command(), and zmq::clock_t::rdtsc().

Here is the call graph for this function:

void zmq::socket_base_t::process_destroy ( ) [protected, virtual]

Reimplemented from zmq::own_t.

Definition at line 746 of file socket_base.cpp.

void zmq::object_t::process_hiccup ( void *  pipe_) [protected, virtual, inherited]

Reimplemented in zmq::pipe_t.

Definition at line 400 of file object.cpp.

References zmq_assert.

void zmq::object_t::process_pipe_term ( ) [protected, virtual, inherited]

Reimplemented in zmq::pipe_t.

Definition at line 405 of file object.cpp.

References zmq_assert.

void zmq::object_t::process_pipe_term_ack ( ) [protected, virtual, inherited]

Reimplemented in zmq::pipe_t.

Definition at line 410 of file object.cpp.

References zmq_assert.

void zmq::object_t::process_plug ( ) [protected, virtual, inherited]
void zmq::object_t::process_reap ( class socket_base_t socket_) [protected, virtual, inherited]

Reimplemented in zmq::reaper_t.

Definition at line 430 of file object.cpp.

References zmq_assert.

void zmq::object_t::process_reaped ( ) [protected, virtual, inherited]

Reimplemented in zmq::reaper_t.

Definition at line 435 of file object.cpp.

References zmq_assert.

void zmq::socket_base_t::process_stop ( ) [private, virtual]

Reimplemented from zmq::object_t.

Definition at line 712 of file socket_base.cpp.

void zmq::socket_base_t::process_term ( int  linger_) [private, virtual]

Reimplemented from zmq::own_t.

Definition at line 730 of file socket_base.cpp.

References zmq::own_t::process_term().

Here is the call graph for this function:

void zmq::socket_base_t::process_unplug ( ) [private]

Definition at line 726 of file socket_base.cpp.

void zmq::socket_base_t::read_activated ( pipe_t pipe_) [virtual]

Implements zmq::i_pipe_events.

Definition at line 833 of file socket_base.cpp.

int zmq::socket_base_t::recv ( class msg_t msg_,
int  flags_ 
)

Definition at line 535 of file socket_base.cpp.

References zmq::msg_t::check(), ETERM, zmq::clock_t::now_ms(), unlikely, and ZMQ_DONTWAIT.

Here is the call graph for this function:

int zmq::object_t::register_endpoint ( const char *  addr_,
struct endpoint_t endpoint_ 
) [protected, inherited]

Definition at line 132 of file object.cpp.

void zmq::own_t::register_term_acks ( int  count_) [inherited]

Definition at line 178 of file own.cpp.

int zmq::socket_base_t::send ( class msg_t msg_,
int  flags_ 
)

Definition at line 469 of file socket_base.cpp.

References zmq::msg_t::check(), ETERM, zmq::msg_t::more, zmq::clock_t::now_ms(), zmq::msg_t::reset_flags(), zmq::msg_t::set_flags(), unlikely, ZMQ_DONTWAIT, and ZMQ_SNDMORE.

Here is the call graph for this function:

void zmq::object_t::send_activate_read ( class pipe_t destination_) [protected, inherited]
void zmq::object_t::send_activate_write ( class pipe_t destination_,
uint64_t  msgs_read_ 
) [protected, inherited]
void zmq::object_t::send_attach ( class session_base_t destination_,
struct i_engine engine_,
bool  inc_seqnum_ = true 
) [protected, inherited]

Definition at line 205 of file object.cpp.

References zmq::command_t::args, zmq::command_t::attach, zmq::command_t::destination, zmq::own_t::inc_seqnum(), and zmq::command_t::type.

Here is the call graph for this function:

void zmq::object_t::send_bind ( class own_t destination_,
class pipe_t pipe_,
bool  inc_seqnum_ = true 
) [protected, inherited]

Definition at line 221 of file object.cpp.

References zmq::command_t::args, zmq::command_t::bind, zmq::command_t::destination, zmq::own_t::inc_seqnum(), and zmq::command_t::type.

Here is the call graph for this function:

void zmq::object_t::send_done ( ) [protected, inherited]
void zmq::object_t::send_hiccup ( class pipe_t destination_,
void *  pipe_ 
) [protected, inherited]
void zmq::object_t::send_own ( class own_t destination_,
class own_t object_ 
) [protected, inherited]

Definition at line 192 of file object.cpp.

References zmq::command_t::args, zmq::command_t::destination, zmq::own_t::inc_seqnum(), zmq::command_t::own, and zmq::command_t::type.

Here is the call graph for this function:

void zmq::object_t::send_pipe_term ( class pipe_t destination_) [protected, inherited]
void zmq::object_t::send_pipe_term_ack ( class pipe_t destination_) [protected, inherited]
void zmq::object_t::send_plug ( class own_t destination_,
bool  inc_seqnum_ = true 
) [protected, inherited]

Definition at line 178 of file object.cpp.

References zmq::command_t::destination, zmq::own_t::inc_seqnum(), zmq::command_t::plug, and zmq::command_t::type.

Here is the call graph for this function:

void zmq::object_t::send_reap ( class socket_base_t socket_) [protected, inherited]
void zmq::object_t::send_reaped ( ) [protected, inherited]
void zmq::object_t::send_stop ( ) [protected, inherited]
void zmq::object_t::send_term ( class own_t destination_,
int  linger_ 
) [protected, inherited]
void zmq::object_t::send_term_ack ( class own_t destination_) [protected, inherited]
void zmq::object_t::send_term_req ( class own_t destination_,
class own_t object_ 
) [protected, inherited]
void zmq::array_item_t< 0 >::set_array_index ( int  index_) [inline, inherited]

Definition at line 51 of file array.hpp.

int zmq::socket_base_t::setsockopt ( int  option_,
const void *  optval_,
size_t  optvallen_ 
)

Definition at line 228 of file socket_base.cpp.

References ETERM, and unlikely.

void zmq::socket_base_t::start_reaping ( poller_t *  poller_)

Definition at line 643 of file socket_base.cpp.

Referenced by zmq::reaper_t::process_reap().

Here is the caller graph for this function:

void zmq::socket_base_t::stop ( )

Definition at line 141 of file socket_base.cpp.

void zmq::own_t::terminate ( ) [protected, inherited]

Definition at line 138 of file own.cpp.

void zmq::socket_base_t::terminated ( pipe_t pipe_) [virtual]

Implements zmq::i_pipe_events.

Definition at line 848 of file socket_base.cpp.

void zmq::socket_base_t::timer_event ( int  id_) [virtual]

Implements zmq::i_poll_events.

Definition at line 809 of file socket_base.cpp.

References zmq_assert.

void zmq::object_t::unregister_endpoints ( class socket_base_t socket_) [protected, inherited]

Definition at line 137 of file object.cpp.

void zmq::own_t::unregister_term_ack ( ) [inherited]

Definition at line 183 of file own.cpp.

References zmq_assert.

void zmq::socket_base_t::write_activated ( pipe_t pipe_) [virtual]

Implements zmq::i_pipe_events.

Definition at line 838 of file socket_base.cpp.

virtual void zmq::socket_base_t::xattach_pipe ( class pipe_t pipe_) [protected, pure virtual]
bool zmq::socket_base_t::xhas_in ( ) [protected, virtual]
bool zmq::socket_base_t::xhas_out ( ) [protected, virtual]
void zmq::socket_base_t::xhiccuped ( pipe_t pipe_) [protected, virtual]

Reimplemented in zmq::xsub_t.

Definition at line 789 of file socket_base.cpp.

References zmq_assert.

void zmq::socket_base_t::xread_activated ( pipe_t pipe_) [protected, virtual]

Reimplemented in zmq::pair_t, zmq::pull_t, zmq::xpub_t, zmq::xrep_t, zmq::xreq_t, and zmq::xsub_t.

Definition at line 780 of file socket_base.cpp.

References zmq_assert.

int zmq::socket_base_t::xrecv ( class msg_t msg_,
int  flags_ 
) [protected, virtual]

Reimplemented in zmq::pair_t, zmq::pub_t, zmq::pull_t, zmq::rep_t, zmq::req_t, zmq::xpub_t, zmq::xrep_t, zmq::xreq_t, and zmq::xsub_t.

Definition at line 774 of file socket_base.cpp.

References ENOTSUP.

int zmq::socket_base_t::xsend ( class msg_t msg_,
int  flags_ 
) [protected, virtual]

Reimplemented in zmq::pair_t, zmq::push_t, zmq::rep_t, zmq::req_t, zmq::sub_t, zmq::xpub_t, zmq::xrep_t, zmq::xreq_t, and zmq::xsub_t.

Definition at line 763 of file socket_base.cpp.

References ENOTSUP.

int zmq::socket_base_t::xsetsockopt ( int  option_,
const void *  optval_,
size_t  optvallen_ 
) [protected, virtual]

Reimplemented in zmq::sub_t.

Definition at line 751 of file socket_base.cpp.

virtual void zmq::socket_base_t::xterminated ( pipe_t pipe_) [protected, pure virtual]
void zmq::socket_base_t::xwrite_activated ( pipe_t pipe_) [protected, virtual]

Reimplemented in zmq::pair_t, zmq::push_t, zmq::xpub_t, zmq::xrep_t, zmq::xreq_t, and zmq::xsub_t.

Definition at line 784 of file socket_base.cpp.

References zmq_assert.


Friends And Related Function Documentation

friend class reaper_t [friend]

Definition at line 47 of file socket_base.hpp.


Member Data Documentation

Definition at line 141 of file socket_base.hpp.

Definition at line 146 of file socket_base.hpp.

poller_t::handle_t zmq::socket_base_t::handle [private]

Definition at line 180 of file socket_base.hpp.

uint64_t zmq::socket_base_t::last_tsc [private]

Definition at line 183 of file socket_base.hpp.

Definition at line 172 of file socket_base.hpp.

options_t zmq::own_t::options [protected, inherited]

Definition at line 176 of file socket_base.hpp.

poller_t* zmq::socket_base_t::poller [private]

Definition at line 179 of file socket_base.hpp.

Definition at line 189 of file socket_base.hpp.

uint32_t zmq::socket_base_t::tag [private]

Definition at line 138 of file socket_base.hpp.

Referenced by check_tag().

Definition at line 186 of file socket_base.hpp.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines