1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:37:36 +00:00

WindowServer: Simplify a few things in WSEventLoop.

This commit is contained in:
Andreas Kling 2019-04-14 05:37:07 +02:00
parent 94a5e08faf
commit 2af729a58a
2 changed files with 27 additions and 45 deletions

View file

@ -1,35 +1,26 @@
#pragma once
#include "WSEvent.h"
#include <AK/HashMap.h>
#include <AK/OwnPtr.h>
#include <AK/Vector.h>
#include <AK/Function.h>
#include <AK/WeakPtr.h>
#include <LibCore/CEventLoop.h>
class CObject;
class WSClientConnection;
struct WSAPI_ClientMessage;
struct WSAPI_ServerMessage;
class WSEventLoop : public CEventLoop {
public:
WSEventLoop();
virtual ~WSEventLoop() override;
static WSEventLoop& the();
void on_receive_from_client(int client_id, const WSAPI_ClientMessage&);
void notify_client_disconnected(int client_id);
static WSEventLoop& the() { return static_cast<WSEventLoop&>(CEventLoop::current()); }
private:
virtual void add_file_descriptors_for_select(fd_set&, int& max_fd_added) override;
virtual void process_file_descriptors_after_select(const fd_set&) override;
virtual void do_processing() override { }
void drain_server();
void drain_mouse();
void drain_keyboard();
void drain_client(WSClientConnection&);
void on_receive_from_client(int client_id, const WSAPI_ClientMessage&);
int m_keyboard_fd { -1 };
int m_mouse_fd { -1 };