2#define TAMER_DRIVER_HH 1
16#include <tamer/xdriver.hh>
28 init_sigpipe = 0x1000,
30 init_no_epoll = 0x4000
59void set_time_type(time_type_t tt);
63 if (tamerpriv::need_recent) {
64 tamerpriv::recent = now();
65 tamerpriv::need_recent =
false;
67 return tamerpriv::recent;
73 tamerpriv::need_recent =
true;
77inline double dtime(
const timeval tv) {
78 return tv.tv_sec + tv.tv_usec / 1000000.;
92inline void loop(loop_flags flags) {
93 driver::main->loop(flags);
98 driver::main->loop(loop_forever);
103 driver::main->loop(loop_once);
108 driver::main->break_loop();
119 driver::main->at_fd(fd, fd_read, e);
123 driver::main->at_fd(fd, fd_read, e);
134 driver::main->at_fd(fd, fd_write, e);
138 driver::main->at_fd(fd, fd_write, e);
148 driver::main->at_fd(fd, fd_hangup, e);
164 driver::main->at_time(expiry, e, bg);
169 driver::main->at_time(expiry, e, bg);
181 driver::main->at_delay(delay, e, bg);
193 driver::main->at_delay(delay, e, bg);
205 driver::main->at_delay_sec(delay, e, bg);
217 driver::main->at_delay_msec(delay, e, bg);
229 driver::main->at_delay_usec(delay, e, bg);
240 driver::at_signal(signo, e);
249 driver::main->at_asap(e);
258 driver::main->at_preblock(e);
261namespace tamerpriv {
extern time_type_t time_type; }
Namespace containing public Tamer classes and functions for the Tamer core.
Definition adapter.hh:17
void at_time(const timeval &expiry, event<> e, bool bg=false)
Register event for a given time.
Definition driver.hh:163
const timeval & recent()
Return a recent snapshot of the current time.
Definition driver.hh:62
void at_signal(int signo, event<> e)
Register event for signal occurrence.
Definition driver.hh:239
void at_fd_shutdown(int fd, event<> e)
Register event for file descriptor shutdown.
Definition driver.hh:147
void cleanup()
Clean up the Tamer event loop.
void once()
Run driver loop once.
Definition driver.hh:102
void at_fd_write(int fd, event<> e)
Register event for file descriptor writability.
Definition driver.hh:133
void at_delay_sec(int delay, event<> e, bool bg=false)
Register event for a given delay.
Definition driver.hh:204
void at_delay_msec(int delay, event<> e, bool bg=false)
Register event for a given delay.
Definition driver.hh:216
void break_loop()
Exit the current driver loop.
Definition driver.hh:107
double dtime(const timeval tv)
Translate a time to a double.
Definition driver.hh:77
void loop()
Run driver loop indefinitely.
Definition driver.hh:97
void at_fd_read(int fd, event<> e)
Register event for file descriptor readability.
Definition driver.hh:118
void at_delay(const timeval &delay, event<> e, bool bg=false)
Register event for a given delay.
Definition driver.hh:180
double drecent()
Return a recent snapshot of the current time as a double.
Definition driver.hh:87
bool initialize(int flags=0)
Initialize the Tamer event loop.
void at_delay_usec(int delay, event<> e, bool bg=false)
Register event for a given delay.
Definition driver.hh:228
void at_preblock(event<> e)
Register event to trigger before Tamer blocks.
Definition driver.hh:257
void at_asap(event<> e)
Register event to trigger soon.
Definition driver.hh:248
void set_recent()
Sets Tamer's current time to the current timestamp.
Definition driver.hh:72
double dnow()
Return the current time as a double.
Definition driver.hh:82