7 #ifndef _FCITX_UTILS_EVENT_H_ 8 #define _FCITX_UTILS_EVENT_H_ 13 #include <fcitx-utils/eventloopinterface.h> 14 #include <fcitx-utils/fcitxutils_export.h> 16 #include <fcitx-utils/macros.h> 20 using EventLoopFactory = std::function<std::unique_ptr<EventLoopInterface>()>;
22 class EventLoopPrivate;
26 EventLoop(std::unique_ptr<EventLoopInterface> impl);
39 FCITXUTILS_DEPRECATED
static const char *impl();
45 const char *implementation()
const;
48 FCITX_NODISCARD std::unique_ptr<EventSourceIO>
49 addIOEvent(
int fd,
IOEventFlags flags, IOCallback callback);
50 FCITX_NODISCARD std::unique_ptr<EventSourceTime>
51 addTimeEvent(clockid_t clock, uint64_t usec, uint64_t accuracy,
52 TimeCallback callback);
53 FCITX_NODISCARD std::unique_ptr<EventSource>
54 addExitEvent(EventCallback callback);
55 FCITX_NODISCARD std::unique_ptr<EventSource>
56 addDeferEvent(EventCallback callback);
57 FCITX_NODISCARD std::unique_ptr<EventSource>
58 addPostEvent(EventCallback callback);
80 FCITX_NODISCARD std::unique_ptr<EventSourceAsync>
81 addAsyncEvent(EventCallback callback);
90 static void setEventLoopFactory(EventLoopFactory factory);
93 const std::unique_ptr<EventLoopPrivate> d_ptr;
98 #endif // _FCITX_UTILS_EVENT_H_
Helper template class to make easier to use type safe enum flags.