120 std::chrono::steady_clock::time_point
when;
132 std::vector<PollItemCallablePair>
items_;
139 void add(
const zmq_pollitem_t &item,
Callable callable);
140 void add(std::unique_ptr<timer_t>,
Callable callable);
Loop object that helps to manage multiple socket by calling a user-defined handler for each socket wh...
Definition: loop.hpp:36
static bool TimerItemCallablePairComp(const TimerItemCallablePair &lhs, const TimerItemCallablePair &rhs)
Definition: loop.cpp:231
void start()
Starts loop.
Definition: loop.cpp:145
bool dispatching_
Definition: loop.hpp:157
void * timer_id_t
Type used to identify created timers withing loop.
Definition: loop.hpp:41
loop()
Construct an empty polling model.
Definition: loop.cpp:23
std::vector< timer_id_t > timerRemoveLater_
Definition: loop.hpp:136
std::function< bool(void) > Callable
Definition: loop.hpp:42
bool start_handle_poller()
Definition: loop.cpp:195
bool rebuild_poller_
Definition: loop.hpp:158
void flush_remove_later()
Flush the fdRemoveLater_ and sockRemoveLater_ vector, effectively removing the item for the reactor a...
Definition: loop.cpp:208
long tickless()
Calculate min time to wait in poller.
Definition: loop.cpp:221
std::vector< raw_socket_t > fdRemoveLater_
Definition: loop.hpp:135
std::vector< PollItemCallablePair > items_
Definition: loop.hpp:132
std::pair< zmq_pollitem_t, Callable > PollItemCallablePair
Definition: loop.hpp:128
bool start_handle_timers()
Definition: loop.cpp:173
std::vector< const socket_t * > sockRemoveLater_
Definition: loop.hpp:134
void add(socket_t &socket, Callable callable, short const event=poller::poll_in)
Add a socket to the loop, providing a handler that will be called when the monitored events occur.
Definition: loop.cpp:50
void remove(timer_id_t const timer)
Remove timer event from the loop.
Definition: loop.cpp:93
std::list< TimerItemCallablePair > timers_
Definition: loop.hpp:133
void reset(timer_id_t const timer)
Reset timer in the loop, it will start counting delay time again.
Definition: loop.cpp:83
std::pair< std::unique_ptr< timer_t >, Callable > TimerItemCallablePair
Definition: loop.hpp:129
poller poller_
Definition: loop.hpp:156
virtual ~loop()
Cleanup reactor.
Definition: loop.cpp:29
Polling wrapper.
Definition: poller.hpp:37
@ poll_in
Definition: poller.hpp:45
@ poll_error
Definition: poller.hpp:47
The socket class represents the zmq sockets.
Definition: socket.hpp:76
C++ wrapper around zmq.
Definition: actor.cpp:30
socket socket_t
socket type
Definition: loop.hpp:25
int raw_socket_t
Definition: compatibility.hpp:134
std::chrono::steady_clock::time_point when
Definition: loop.hpp:120
void update()
Definition: loop.cpp:45
size_t times
Definition: loop.hpp:118
std::chrono::milliseconds delay
Definition: loop.hpp:119
timer_t(size_t times, std::chrono::milliseconds delay)
Definition: loop.cpp:33
void reset()
Definition: loop.cpp:40