1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 05:38:11 +00:00

Kernel: More work on sockets. Getting there..

This commit is contained in:
Andreas Kling 2019-02-14 15:40:04 +01:00
parent a63e8839da
commit b12ab1270a
3 changed files with 22 additions and 7 deletions

View file

@ -13,9 +13,12 @@ class MasterPTY;
class Process;
class Socket;
enum class SocketRole { None, Accepted, Connected };
class FileDescriptor : public Retainable<FileDescriptor> {
public:
static RetainPtr<FileDescriptor> create(RetainPtr<Socket>&&);
static RetainPtr<FileDescriptor> create(RetainPtr<Socket>&&, SocketRole = SocketRole::None);
static RetainPtr<FileDescriptor> create(RetainPtr<Inode>&&);
static RetainPtr<FileDescriptor> create(RetainPtr<CharacterDevice>&&);
static RetainPtr<FileDescriptor> create_pipe_writer(FIFO&);
@ -79,7 +82,7 @@ public:
private:
friend class VFS;
explicit FileDescriptor(RetainPtr<Socket>&&);
FileDescriptor(RetainPtr<Socket>&&, SocketRole);
explicit FileDescriptor(RetainPtr<Inode>&&);
explicit FileDescriptor(RetainPtr<CharacterDevice>&&);
FileDescriptor(FIFO&, FIFO::Direction);
@ -95,6 +98,7 @@ private:
dword m_file_flags { 0 };
RetainPtr<Socket> m_socket;
SocketRole m_socket_role { SocketRole::None };
RetainPtr<FIFO> m_fifo;
FIFO::Direction m_fifo_direction { FIFO::Neither };