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