mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-24 02:03:06 -05:00
53d34a0885
To facilitate listening for action on arbitrary file descriptors, I've added a GNotifier class. It's quite simple but very useful: GNotifier notifier(fd, GNotifier::Read); notifier.on_ready_to_read = [this] (GNotifier& fd) { // read from fd or whatever else you like :^) }; The callback will get invoked by GEventLoop when select() says we have something to read on the fd.
15 lines
332 B
C++
15 lines
332 B
C++
#include <LibGUI/GNotifier.h>
|
|
#include <LibGUI/GEventLoop.h>
|
|
|
|
GNotifier::GNotifier(int fd, unsigned event_mask)
|
|
: m_fd(fd)
|
|
, m_event_mask(event_mask)
|
|
{
|
|
GEventLoop::main().register_notifier(Badge<GNotifier>(), *this);
|
|
}
|
|
|
|
GNotifier::~GNotifier()
|
|
{
|
|
GEventLoop::main().unregister_notifier(Badge<GNotifier>(), *this);
|
|
}
|
|
|