mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-23 17:52:26 -05:00
LibCore: Make CSocket's notifiers into children of the CSocket
The Inspector app quickly exposes crappy flat object hiearchies without parent/child relationships. This is one of many commits that improves the situation by making parent/child CObject relationships explicit.
This commit is contained in:
parent
9d57e7ed68
commit
1b3599fbbc
Notes:
sideshowbarker
2024-07-19 12:37:04 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/1b3599fbbcd
3 changed files with 6 additions and 5 deletions
|
@ -2,8 +2,9 @@
|
|||
#include <LibCore/CEventLoop.h>
|
||||
#include <LibCore/CNotifier.h>
|
||||
|
||||
CNotifier::CNotifier(int fd, unsigned event_mask)
|
||||
: m_fd(fd)
|
||||
CNotifier::CNotifier(int fd, unsigned event_mask, CObject* parent)
|
||||
: CObject(parent)
|
||||
, m_fd(fd)
|
||||
, m_event_mask(event_mask)
|
||||
{
|
||||
set_enabled(true);
|
||||
|
|
|
@ -12,7 +12,7 @@ public:
|
|||
Write = 2,
|
||||
Exceptional = 4,
|
||||
};
|
||||
CNotifier(int fd, unsigned event_mask);
|
||||
CNotifier(int fd, unsigned event_mask, CObject* parent = nullptr);
|
||||
virtual ~CNotifier() override;
|
||||
|
||||
void set_enabled(bool);
|
||||
|
|
|
@ -68,7 +68,7 @@ bool CSocket::connect(const CSocketAddress& address, int port)
|
|||
if (rc < 0) {
|
||||
if (errno == EINPROGRESS) {
|
||||
dbg() << *this << " connection in progress (EINPROGRESS)";
|
||||
m_notifier = make<CNotifier>(fd(), CNotifier::Event::Write);
|
||||
m_notifier = make<CNotifier>(fd(), CNotifier::Event::Write, this);
|
||||
m_notifier->on_ready_to_write = [this] {
|
||||
dbg() << *this << " connected!";
|
||||
m_connected = true;
|
||||
|
@ -138,7 +138,7 @@ void CSocket::did_update_fd(int fd)
|
|||
m_read_notifier = nullptr;
|
||||
return;
|
||||
}
|
||||
m_read_notifier = make<CNotifier>(fd, CNotifier::Event::Read);
|
||||
m_read_notifier = make<CNotifier>(fd, CNotifier::Event::Read, this);
|
||||
m_read_notifier->on_ready_to_read = [this] {
|
||||
if (on_ready_to_read)
|
||||
on_ready_to_read();
|
||||
|
|
Loading…
Add table
Reference in a new issue