mirror of
https://github.com/RGBCube/serenity
synced 2025-05-28 12:25:06 +00:00
Port Terminal to LibGUI.
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.
This commit is contained in:
parent
ae4811fbae
commit
53d34a0885
15 changed files with 268 additions and 151 deletions
15
LibGUI/GNotifier.cpp
Normal file
15
LibGUI/GNotifier.cpp
Normal file
|
@ -0,0 +1,15 @@
|
|||
#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);
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue