7 #ifndef _FCITX_UTILS_EVENT_H_ 8 #define _FCITX_UTILS_EVENT_H_ 10 #include <sys/types.h> 14 #include <fcitx-utils/eventloopinterface.h> 15 #include <fcitx-utils/fcitxutils_export.h> 17 #include <fcitx-utils/macros.h> 25 using EventLoopFactory = std::function<std::unique_ptr<EventLoopInterface>()>;
27 class EventLoopPrivate;
31 EventLoop(std::unique_ptr<EventLoopInterface> impl);
44 FCITXUTILS_DEPRECATED
static const char *impl();
50 const char *implementation()
const;
53 FCITX_NODISCARD std::unique_ptr<EventSourceIO>
54 addIOEvent(
int fd,
IOEventFlags flags, IOCallback callback);
55 FCITX_NODISCARD std::unique_ptr<EventSourceTime>
56 addTimeEvent(clockid_t clock, uint64_t usec, uint64_t accuracy,
57 TimeCallback callback);
58 FCITX_NODISCARD std::unique_ptr<EventSource>
59 addExitEvent(EventCallback callback);
60 FCITX_NODISCARD std::unique_ptr<EventSource>
61 addDeferEvent(EventCallback callback);
62 FCITX_NODISCARD std::unique_ptr<EventSource>
63 addPostEvent(EventCallback callback);
85 FCITX_NODISCARD std::unique_ptr<EventSourceAsync>
86 addAsyncEvent(EventCallback callback);
95 static void setEventLoopFactory(EventLoopFactory factory);
98 const std::unique_ptr<EventLoopPrivate> d_ptr;
103 #endif // _FCITX_UTILS_EVENT_H_
Helper template class to make easier to use type safe enum flags.