#ifndef LOOPER_HH #define LOOPER_HH #include class Looper { public: virtual ~Looper() {} static uint8_t const EV_READ; static uint8_t const EV_WRITE; static uint8_t const EV_ERR; virtual void add(int fd, uint8_t events, std::function const& callback) = 0; virtual void modify(int fd, uint8_t events) = 0; virtual void remove(int fd) = 0; // Returned id is never 0 virtual uint32_t schedule( double delay, std::function const& callback) = 0; virtual void cancel(uint32_t id) = 0; protected: Looper() {} Looper(Looper const&) = delete; Looper& operator=(Looper const&) = delete; }; #endif // LOOPER_HH