![]() |
libzmq master
The Intelligent Transport Layer
|
#include <xsub.hpp>
Public Member Functions | |
xsub_t (class ctx_t *parent_, uint32_t tid_) | |
~xsub_t () | |
int | bind (const char *addr_) |
bool | check_tag () |
int | close () |
int | connect (const char *addr_) |
int | get_array_index () |
ctx_t * | get_ctx () |
mailbox_t * | get_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_t * | create (int type_, class ctx_t *parent_, uint32_t tid_) |
Protected Member Functions | |
class io_thread_t * | choose_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_) |
void | xattach_pipe (class pipe_t *pipe_) |
bool | xhas_in () |
bool | xhas_out () |
void | xhiccuped (pipe_t *pipe_) |
void | xread_activated (class pipe_t *pipe_) |
int | xrecv (class msg_t *msg_, int flags_) |
int | xsend (class msg_t *msg_, int flags_) |
virtual int | xsetsockopt (int option_, const void *optval_, size_t optvallen_) |
void | xterminated (class pipe_t *pipe_) |
void | xwrite_activated (class pipe_t *pipe_) |
Protected Attributes | |
options_t | options |
Private Member Functions | |
xsub_t (const xsub_t &) | |
bool | match (class msg_t *msg_) |
const xsub_t & | operator= (const xsub_t &) |
Static Private Member Functions | |
static void | send_subscription (unsigned char *data_, size_t size_, void *arg_) |
Private Attributes | |
dist_t | dist |
fq_t | fq |
bool | has_message |
msg_t | message |
bool | more |
trie_t | subscriptions |
zmq::xsub_t::xsub_t | ( | class ctx_t * | parent_, |
uint32_t | tid_ | ||
) |
Definition at line 27 of file xsub.cpp.
References errno_assert, zmq::msg_t::init(), message, zmq::own_t::options, zmq::options_t::type, and ZMQ_XSUB.
zmq::xsub_t::~xsub_t | ( | ) |
Definition at line 37 of file xsub.cpp.
References errno_assert.
zmq::xsub_t::xsub_t | ( | const xsub_t & | ) | [private] |
int zmq::socket_base_t::bind | ( | const char * | addr_ | ) | [inherited] |
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().
bool zmq::socket_base_t::check_tag | ( | ) | [inherited] |
Definition at line 65 of file socket_base.cpp.
References zmq::socket_base_t::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().
int zmq::socket_base_t::close | ( | ) | [inherited] |
Definition at line 623 of file socket_base.cpp.
int zmq::socket_base_t::connect | ( | const char * | addr_ | ) | [inherited] |
Definition at line 365 of file socket_base.cpp.
References zmq::session_base_t::attach_pipe(), zmq::session_base_t::create(), EMTHREAD, errno_assert, ETERM, zmq::msg_t::identity, zmq::msg_t::init_size(), zmq::endpoint_t::options, zmq::options_t::rcvhwm, zmq::options_t::sndhwm, zmq::endpoint_t::socket, unlikely, zmq::pipe_t::write(), and zmq_assert.
zmq::socket_base_t * zmq::socket_base_t::create | ( | int | type_, |
class ctx_t * | parent_, | ||
uint32_t | tid_ | ||
) | [static, inherited] |
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().
void zmq::object_t::destroy_socket | ( | class socket_base_t * | socket_ | ) | [protected, inherited] |
Definition at line 147 of file object.cpp.
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] |
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 | ( | ) | [inherited] |
Definition at line 136 of file socket_base.cpp.
Referenced by zmq::ctx_t::create_socket().
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().
int zmq::socket_base_t::getsockopt | ( | int | option_, |
void * | optval_, | ||
size_t * | optvallen_ | ||
) | [inherited] |
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 | ( | ) | [inherited] |
Definition at line 633 of file socket_base.cpp.
bool zmq::socket_base_t::has_out | ( | ) | [inherited] |
Definition at line 638 of file socket_base.cpp.
void zmq::socket_base_t::hiccuped | ( | pipe_t * | pipe_ | ) | [virtual, inherited] |
Implements zmq::i_pipe_events.
Definition at line 843 of file socket_base.cpp.
void zmq::socket_base_t::in_event | ( | ) | [virtual, inherited] |
Implements zmq::i_poll_events.
Definition at line 794 of file socket_base.cpp.
void zmq::own_t::inc_seqnum | ( | ) | [inherited] |
Definition at line 56 of file own.cpp.
Referenced by zmq::ctx_t::find_endpoint(), zmq::tcp_listener_t::in_event(), zmq::ipc_listener_t::in_event(), zmq::object_t::send_attach(), zmq::object_t::send_bind(), zmq::object_t::send_own(), and zmq::object_t::send_plug().
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().
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().
void zmq::object_t::log | ( | const char * | format_, |
... | |||
) | [protected, inherited] |
Definition at line 152 of file object.cpp.
bool zmq::xsub_t::match | ( | class msg_t * | msg_ | ) | [private] |
Definition at line 209 of file mtrie.cpp.
References zmq::mtrie_t::count, zmq::mtrie_t::min, zmq::mtrie_t::next, zmq::mtrie_t::node, zmq::mtrie_t::pipes, and zmq::mtrie_t::table.
void zmq::socket_base_t::out_event | ( | ) | [virtual, inherited] |
Implements zmq::i_poll_events.
Definition at line 804 of file socket_base.cpp.
References zmq_assert.
void zmq::object_t::process_activate_read | ( | ) | [protected, virtual, inherited] |
void zmq::object_t::process_activate_write | ( | uint64_t | msgs_read_ | ) | [protected, virtual, inherited] |
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::object_t::process_command | ( | struct command_t & | cmd_ | ) | [inherited] |
Definition at line 59 of file object.cpp.
References zmq::command_t::activate_read, zmq::command_t::activate_write, zmq::command_t::args, zmq::command_t::attach, zmq::command_t::bind, zmq::command_t::hiccup, zmq::command_t::own, zmq::command_t::pipe_term, zmq::command_t::pipe_term_ack, zmq::command_t::plug, zmq::command_t::reap, zmq::command_t::reaped, zmq::command_t::stop, zmq::command_t::term, zmq::command_t::term_ack, zmq::command_t::term_req, zmq::command_t::type, and zmq_assert.
Referenced by zmq::reaper_t::in_event(), zmq::io_thread_t::in_event(), and zmq::socket_base_t::process_commands().
void zmq::socket_base_t::process_destroy | ( | ) | [protected, virtual, inherited] |
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] |
void zmq::object_t::process_pipe_term | ( | ) | [protected, virtual, inherited] |
void zmq::object_t::process_pipe_term_ack | ( | ) | [protected, virtual, inherited] |
void zmq::object_t::process_plug | ( | ) | [protected, virtual, inherited] |
Reimplemented in zmq::ipc_connecter_t, zmq::ipc_listener_t, zmq::session_base_t, zmq::tcp_connecter_t, and zmq::tcp_listener_t.
Definition at line 370 of file object.cpp.
References zmq_assert.
void zmq::object_t::process_reap | ( | class socket_base_t * | socket_ | ) | [protected, virtual, inherited] |
void zmq::object_t::process_reaped | ( | ) | [protected, virtual, inherited] |
void zmq::socket_base_t::read_activated | ( | pipe_t * | pipe_ | ) | [virtual, inherited] |
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_ | ||
) | [inherited] |
Definition at line 535 of file socket_base.cpp.
References zmq::msg_t::check(), ETERM, zmq::clock_t::now_ms(), unlikely, and ZMQ_DONTWAIT.
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] |
int zmq::socket_base_t::send | ( | class msg_t * | msg_, |
int | flags_ | ||
) | [inherited] |
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.
void zmq::object_t::send_activate_read | ( | class pipe_t * | destination_ | ) | [protected, inherited] |
Definition at line 237 of file object.cpp.
References zmq::command_t::activate_read, zmq::command_t::destination, and zmq::command_t::type.
void zmq::object_t::send_activate_write | ( | class pipe_t * | destination_, |
uint64_t | msgs_read_ | ||
) | [protected, inherited] |
Definition at line 248 of file object.cpp.
References zmq::command_t::activate_write, zmq::command_t::args, zmq::command_t::destination, and zmq::command_t::type.
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.
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.
void zmq::object_t::send_done | ( | ) | [protected, inherited] |
Definition at line 354 of file object.cpp.
References zmq::command_t::destination, zmq::command_t::done, zmq::ctx_t::term_tid, and zmq::command_t::type.
void zmq::object_t::send_hiccup | ( | class pipe_t * | destination_, |
void * | pipe_ | ||
) | [protected, inherited] |
Definition at line 261 of file object.cpp.
References zmq::command_t::args, zmq::command_t::destination, zmq::command_t::hiccup, and zmq::command_t::type.
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.
void zmq::object_t::send_pipe_term | ( | class pipe_t * | destination_ | ) | [protected, inherited] |
Definition at line 273 of file object.cpp.
References zmq::command_t::destination, zmq::command_t::pipe_term, and zmq::command_t::type.
void zmq::object_t::send_pipe_term_ack | ( | class pipe_t * | destination_ | ) | [protected, inherited] |
Definition at line 284 of file object.cpp.
References zmq::command_t::destination, zmq::command_t::pipe_term_ack, and zmq::command_t::type.
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.
void zmq::object_t::send_reap | ( | class socket_base_t * | socket_ | ) | [protected, inherited] |
Definition at line 331 of file object.cpp.
References zmq::command_t::args, zmq::command_t::destination, zmq::command_t::reap, and zmq::command_t::type.
void zmq::object_t::send_reaped | ( | ) | [protected, inherited] |
Definition at line 343 of file object.cpp.
References zmq::command_t::destination, zmq::command_t::reaped, and zmq::command_t::type.
void zmq::object_t::send_stop | ( | ) | [protected, inherited] |
Definition at line 165 of file object.cpp.
References zmq::command_t::destination, zmq::command_t::stop, and zmq::command_t::type.
void zmq::xsub_t::send_subscription | ( | unsigned char * | data_, |
size_t | size_, | ||
void * | arg_ | ||
) | [static, private] |
Definition at line 198 of file xsub.cpp.
References zmq::msg_t::data, zmq::msg_t::init_size(), zmq::pipe_t::write(), and zmq_assert.
void zmq::object_t::send_term | ( | class own_t * | destination_, |
int | linger_ | ||
) | [protected, inherited] |
Definition at line 308 of file object.cpp.
References zmq::command_t::args, zmq::command_t::destination, zmq::command_t::term, and zmq::command_t::type.
void zmq::object_t::send_term_ack | ( | class own_t * | destination_ | ) | [protected, inherited] |
Definition at line 320 of file object.cpp.
References zmq::command_t::destination, zmq::command_t::term_ack, and zmq::command_t::type.
void zmq::object_t::send_term_req | ( | class own_t * | destination_, |
class own_t * | object_ | ||
) | [protected, inherited] |
Definition at line 295 of file object.cpp.
References zmq::command_t::args, zmq::command_t::destination, zmq::command_t::term_req, and zmq::command_t::type.
void zmq::array_item_t< 0 >::set_array_index | ( | int | index_ | ) | [inline, inherited] |
int zmq::socket_base_t::setsockopt | ( | int | option_, |
const void * | optval_, | ||
size_t | optvallen_ | ||
) | [inherited] |
Definition at line 228 of file socket_base.cpp.
void zmq::socket_base_t::start_reaping | ( | poller_t * | poller_ | ) | [inherited] |
Definition at line 643 of file socket_base.cpp.
Referenced by zmq::reaper_t::process_reap().
void zmq::socket_base_t::stop | ( | ) | [inherited] |
Definition at line 141 of file socket_base.cpp.
void zmq::socket_base_t::terminated | ( | pipe_t * | pipe_ | ) | [virtual, inherited] |
Implements zmq::i_pipe_events.
Definition at line 848 of file socket_base.cpp.
void zmq::socket_base_t::timer_event | ( | int | id_ | ) | [virtual, inherited] |
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, inherited] |
Implements zmq::i_pipe_events.
Definition at line 838 of file socket_base.cpp.
void zmq::xsub_t::xattach_pipe | ( | class pipe_t * | pipe_ | ) | [protected, virtual] |
Implements zmq::socket_base_t.
Definition at line 43 of file xsub.cpp.
References zmq::pipe_t::flush(), and zmq_assert.
bool zmq::xsub_t::xhas_in | ( | ) | [protected, virtual] |
Reimplemented from zmq::socket_base_t.
Definition at line 153 of file xsub.cpp.
References zmq::msg_t::more, zmq_assert, and ZMQ_DONTWAIT.
bool zmq::xsub_t::xhas_out | ( | ) | [protected, virtual] |
Reimplemented from zmq::socket_base_t.
Reimplemented in zmq::sub_t.
void zmq::xsub_t::xhiccuped | ( | pipe_t * | pipe_ | ) | [protected, virtual] |
Reimplemented from zmq::socket_base_t.
Definition at line 70 of file xsub.cpp.
References zmq::pipe_t::flush().
void zmq::xsub_t::xread_activated | ( | class pipe_t * | pipe_ | ) | [protected, virtual] |
Reimplemented from zmq::socket_base_t.
int zmq::xsub_t::xrecv | ( | class msg_t * | msg_, |
int | flags_ | ||
) | [protected, virtual] |
Reimplemented from zmq::socket_base_t.
Definition at line 112 of file xsub.cpp.
References errno_assert, zmq::msg_t::flags, zmq::msg_t::more, zmq::msg_t::move(), zmq_assert, and ZMQ_DONTWAIT.
int zmq::xsub_t::xsend | ( | class msg_t * | msg_, |
int | flags_ | ||
) | [protected, virtual] |
Reimplemented from zmq::socket_base_t.
Reimplemented in zmq::sub_t.
Definition at line 77 of file xsub.cpp.
References zmq::msg_t::data, zmq::msg_t::size, and zmq_assert.
Referenced by zmq::sub_t::xsetsockopt().
int zmq::socket_base_t::xsetsockopt | ( | int | option_, |
const void * | optval_, | ||
size_t | optvallen_ | ||
) | [protected, virtual, inherited] |
Reimplemented in zmq::sub_t.
Definition at line 751 of file socket_base.cpp.
void zmq::xsub_t::xterminated | ( | class pipe_t * | pipe_ | ) | [protected, virtual] |
Implements zmq::socket_base_t.
void zmq::xsub_t::xwrite_activated | ( | class pipe_t * | pipe_ | ) | [protected, virtual] |
Reimplemented from zmq::socket_base_t.
dist_t zmq::xsub_t::dist [private] |
fq_t zmq::xsub_t::fq [private] |
bool zmq::xsub_t::has_message [private] |
msg_t zmq::xsub_t::message [private] |
bool zmq::xsub_t::more [private] |
options_t zmq::own_t::options [protected, inherited] |
Definition at line 98 of file own.hpp.
Referenced by zmq::pair_t::pair_t(), zmq::pub_t::pub_t(), zmq::pull_t::pull_t(), zmq::push_t::push_t(), zmq::rep_t::rep_t(), zmq::req_t::req_t(), zmq::sub_t::sub_t(), zmq::xpub_t::xpub_t(), zmq::xrep_t::xrep_t(), zmq::xreq_t::xreq_t(), and xsub_t().
trie_t zmq::xsub_t::subscriptions [private] |