diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-08-28 22:32:15 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-08-28 22:32:15 +0200 |
| commit | ab47b72dc84e49d9b7e647b08af93020fa510616 (patch) | |
| tree | 0e86fd66a9bb27030dc140cd488f503f55206a5a /src/event_manager.hh | |
| parent | d5dc5dff7f5b971c4c9b8fe4eb3c272762964ffd (diff) | |
add a poll based EventManager and use it for ncurse client update
Diffstat (limited to 'src/event_manager.hh')
| -rw-r--r-- | src/event_manager.hh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/event_manager.hh b/src/event_manager.hh new file mode 100644 index 00000000..c1795983 --- /dev/null +++ b/src/event_manager.hh @@ -0,0 +1,29 @@ +#ifndef event_manager_hh_INCLUDED +#define event_manager_hh_INCLUDED + +#include <poll.h> + +#include "utils.hh" + +namespace Kakoune +{ + +using EventHandler = std::function<void (int fd)>; + +class EventManager : public Singleton<EventManager> +{ +public: + void watch(int fd, EventHandler handler); + void unwatch(int fd); + + void handle_next_events(); + +private: + std::vector<pollfd> m_events; + std::vector<EventHandler> m_handlers; +}; + +} + +#endif // event_manager_hh_INCLUDED + |
