paxos/src/events/events.cc

21 lines
512 B
C++
Raw Permalink Normal View History

2020-05-05 13:39:59 +00:00
#include "events/events.hh"
#include "events/register.hh"
namespace paxos
{
EventWatcher::EventWatcher(int fd, int flags)
{
ev_io_init(&watcher_, EventWatcher::event_callback, fd, flags);
watcher_.data = reinterpret_cast<void*>(this);
}
void EventWatcher::event_callback(struct ev_loop*, ev_io* w, int)
{
auto ew = reinterpret_cast<EventWatcher*>(w->data);
auto shared_ew = event_register.at(ew).value();
(*shared_ew)();
}
2020-05-06 16:51:50 +00:00
} // namespace paxos