dealer.hpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MPL-2.0 */
2 
3 #ifndef __ZMQ_DEALER_HPP_INCLUDED__
4 #define __ZMQ_DEALER_HPP_INCLUDED__
5 
6 #include "socket_base.hpp"
7 #include "session_base.hpp"
8 #include "fq.hpp"
9 #include "lb.hpp"
10 
11 namespace zmq
12 {
13 class ctx_t;
14 class msg_t;
15 class pipe_t;
16 class io_thread_t;
17 class socket_base_t;
18 
19 class dealer_t : public socket_base_t
20 {
21  public:
22  dealer_t (zmq::ctx_t *parent_, uint32_t tid_, int sid_);
24 
25  protected:
26  // Overrides of functions from socket_base_t.
27  void xattach_pipe (zmq::pipe_t *pipe_,
28  bool subscribe_to_all_,
29  bool locally_initiated_) ZMQ_FINAL;
30  int xsetsockopt (int option_,
31  const void *optval_,
32  size_t optvallen_) ZMQ_OVERRIDE;
33  int xsend (zmq::msg_t *msg_) ZMQ_OVERRIDE;
34  int xrecv (zmq::msg_t *msg_) ZMQ_OVERRIDE;
35  bool xhas_in () ZMQ_OVERRIDE;
36  bool xhas_out () ZMQ_OVERRIDE;
37  void xread_activated (zmq::pipe_t *pipe_) ZMQ_FINAL;
38  void xwrite_activated (zmq::pipe_t *pipe_) ZMQ_FINAL;
39  void xpipe_terminated (zmq::pipe_t *pipe_) ZMQ_OVERRIDE;
40 
41  // Send and recv - knowing which pipe was used.
42  int sendpipe (zmq::msg_t *msg_, zmq::pipe_t **pipe_);
43  int recvpipe (zmq::msg_t *msg_, zmq::pipe_t **pipe_);
44 
45  private:
46  // Messages are fair-queued from inbound pipes. And load-balanced to
47  // the outbound pipes.
50 
51  // if true, send an empty message to every connected router peer
53 
55 };
56 }
57 
58 #endif
lb.hpp
zmq::dealer_t::xattach_pipe
void xattach_pipe(zmq::pipe_t *pipe_, bool subscribe_to_all_, bool locally_initiated_) ZMQ_FINAL
Definition: dealer.cpp:21
zmq::dealer_t::xhas_out
bool xhas_out() ZMQ_OVERRIDE
Definition: dealer.cpp:89
zmq::dealer_t
Definition: dealer.hpp:19
zmq::socket_base_t
Definition: socket_base.hpp:31
zmq::dealer_t::xhas_in
bool xhas_in() ZMQ_OVERRIDE
Definition: dealer.cpp:84
zmq::dealer_t::xrecv
int xrecv(zmq::msg_t *msg_) ZMQ_OVERRIDE
Definition: dealer.cpp:79
zmq::dealer_t::xwrite_activated
void xwrite_activated(zmq::pipe_t *pipe_) ZMQ_FINAL
Definition: dealer.cpp:99
zmq::fq_t
Definition: fq.hpp:18
ZMQ_FINAL
#define ZMQ_FINAL
Definition: macros.hpp:35
zmq
Definition: zmq.hpp:229
ZMQ_OVERRIDE
#define ZMQ_OVERRIDE
Definition: zmq.hpp:91
zmq::dealer_t::sendpipe
int sendpipe(zmq::msg_t *msg_, zmq::pipe_t **pipe_)
Definition: dealer.cpp:110
zmq::dealer_t::xsend
int xsend(zmq::msg_t *msg_) ZMQ_OVERRIDE
Definition: dealer.cpp:74
ZMQ_NON_COPYABLE_NOR_MOVABLE
#define ZMQ_NON_COPYABLE_NOR_MOVABLE(classname)
Definition: macros.hpp:58
zmq::lb_t
Definition: lb.hpp:16
fq.hpp
zmq::dealer_t::xpipe_terminated
void xpipe_terminated(zmq::pipe_t *pipe_) ZMQ_OVERRIDE
Definition: dealer.cpp:104
zmq::dealer_t::xsetsockopt
int xsetsockopt(int option_, const void *optval_, size_t optvallen_) ZMQ_OVERRIDE
Definition: dealer.cpp:49
socket_base.hpp
zmq::dealer_t::~dealer_t
~dealer_t() ZMQ_OVERRIDE
Definition: dealer.cpp:17
zmq::dealer_t::xread_activated
void xread_activated(zmq::pipe_t *pipe_) ZMQ_FINAL
Definition: dealer.cpp:94
zmq::dealer_t::_fq
fq_t _fq
Definition: dealer.hpp:48
zmq::dealer_t::dealer_t
dealer_t(zmq::ctx_t *parent_, uint32_t tid_, int sid_)
Definition: dealer.cpp:9
zmq::dealer_t::_lb
lb_t _lb
Definition: dealer.hpp:49
session_base.hpp
zmq::dealer_t::_probe_router
bool _probe_router
Definition: dealer.hpp:52
zmq::msg_t
Definition: msg.hpp:33
zmq::dealer_t::recvpipe
int recvpipe(zmq::msg_t *msg_, zmq::pipe_t **pipe_)
Definition: dealer.cpp:115


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:49