io_object.hpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MPL-2.0 */
2 
3 #ifndef __ZMQ_IO_OBJECT_HPP_INCLUDED__
4 #define __ZMQ_IO_OBJECT_HPP_INCLUDED__
5 
6 #include <stddef.h>
7 
8 #include "stdint.hpp"
9 #include "poller.hpp"
10 #include "i_poll_events.hpp"
11 
12 namespace zmq
13 {
14 class io_thread_t;
15 
16 // Simple base class for objects that live in I/O threads.
17 // It makes communication with the poller object easier and
18 // makes defining unneeded event handlers unnecessary.
19 
20 class io_object_t : public i_poll_events
21 {
22  public:
23  io_object_t (zmq::io_thread_t *io_thread_ = NULL);
25 
26  // When migrating an object from one I/O thread to another, first
27  // unplug it, then migrate it, then plug it to the new thread.
28  void plug (zmq::io_thread_t *io_thread_);
29  void unplug ();
30 
31  protected:
32  typedef poller_t::handle_t handle_t;
33 
34  // Methods to access underlying poller object.
35  handle_t add_fd (fd_t fd_);
36  void rm_fd (handle_t handle_);
37  void set_pollin (handle_t handle_);
38  void reset_pollin (handle_t handle_);
39  void set_pollout (handle_t handle_);
40  void reset_pollout (handle_t handle_);
41  void add_timer (int timeout_, int id_);
42  void cancel_timer (int id_);
43 
44  // i_poll_events interface implementation.
45  void in_event () ZMQ_OVERRIDE;
46  void out_event () ZMQ_OVERRIDE;
47  void timer_event (int id_) ZMQ_OVERRIDE;
48 
49  private:
50  poller_t *_poller;
51 
53 };
54 }
55 
56 #endif
zmq::io_object_t::plug
void plug(zmq::io_thread_t *io_thread_)
Definition: io_object.cpp:18
i_poll_events.hpp
zmq::io_object_t
Definition: io_object.hpp:20
zmq::io_object_t::handle_t
poller_t::handle_t handle_t
Definition: io_object.hpp:32
NULL
NULL
Definition: test_security_zap.cpp:405
zmq::io_object_t::out_event
void out_event() ZMQ_OVERRIDE
Definition: io_object.cpp:81
zmq::i_poll_events
Definition: i_poll_events.hpp:13
zmq::io_object_t::cancel_timer
void cancel_timer(int id_)
Definition: io_object.cpp:71
zmq::io_object_t::reset_pollin
void reset_pollin(handle_t handle_)
Definition: io_object.cpp:51
zmq::fd_t
int fd_t
Definition: zmq.hpp:287
zmq::io_object_t::unplug
void unplug()
Definition: io_object.cpp:27
zmq
Definition: zmq.hpp:229
ZMQ_OVERRIDE
#define ZMQ_OVERRIDE
Definition: zmq.hpp:91
stdint.hpp
poller.hpp
zmq::io_object_t::reset_pollout
void reset_pollout(handle_t handle_)
Definition: io_object.cpp:61
zmq::io_object_t::timer_event
void timer_event(int id_) ZMQ_OVERRIDE
Definition: io_object.cpp:86
ZMQ_NON_COPYABLE_NOR_MOVABLE
#define ZMQ_NON_COPYABLE_NOR_MOVABLE(classname)
Definition: macros.hpp:58
zmq::io_object_t::~io_object_t
~io_object_t() ZMQ_OVERRIDE
Definition: io_object.cpp:14
zmq::io_object_t::add_fd
handle_t add_fd(fd_t fd_)
Definition: io_object.cpp:36
zmq::io_object_t::in_event
void in_event() ZMQ_OVERRIDE
Definition: io_object.cpp:76
zmq::io_object_t::set_pollout
void set_pollout(handle_t handle_)
Definition: io_object.cpp:56
zmq::io_object_t::io_object_t
io_object_t(zmq::io_thread_t *io_thread_=NULL)
Definition: io_object.cpp:8
zmq::io_object_t::add_timer
void add_timer(int timeout_, int id_)
Definition: io_object.cpp:66
zmq::io_object_t::rm_fd
void rm_fd(handle_t handle_)
Definition: io_object.cpp:41
zmq::io_object_t::set_pollin
void set_pollin(handle_t handle_)
Definition: io_object.cpp:46
zmq::io_object_t::_poller
poller_t * _poller
Definition: io_object.hpp:50


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