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

Kernel: Merge FooSocketHandle classes into a single SocketHandle<Foo>

- IPv4SocketHandle => SocketHandle<IPv4Socket>
- TCPSocketHandle => SocketHandle<TCPSocket>
- UDPSocketHandle => SocketHandle<UDPSocket>
This commit is contained in:
Andreas Kling 2019-08-09 09:16:12 +02:00
parent 5c66c67f32
commit 04603237da
6 changed files with 19 additions and 94 deletions

View file

@ -2,14 +2,12 @@
#include <Kernel/Net/IPv4Socket.h>
class UDPSocketHandle;
class UDPSocket final : public IPv4Socket {
public:
static NonnullRefPtr<UDPSocket> create(int protocol);
virtual ~UDPSocket() override;
static UDPSocketHandle from_port(u16);
static SocketHandle<UDPSocket> from_port(u16);
private:
explicit UDPSocket(int protocol);
@ -22,27 +20,3 @@ private:
virtual int protocol_allocate_local_port() override;
virtual KResult protocol_bind() override;
};
class UDPSocketHandle : public SocketHandle {
public:
UDPSocketHandle() {}
UDPSocketHandle(RefPtr<UDPSocket>&& socket)
: SocketHandle(move(socket))
{
}
UDPSocketHandle(UDPSocketHandle&& other)
: SocketHandle(move(other))
{
}
UDPSocketHandle(const UDPSocketHandle&) = delete;
UDPSocketHandle& operator=(const UDPSocketHandle&) = delete;
UDPSocket* operator->() { return &socket(); }
const UDPSocket* operator->() const { return &socket(); }
UDPSocket& socket() { return static_cast<UDPSocket&>(SocketHandle::socket()); }
const UDPSocket& socket() const { return static_cast<const UDPSocket&>(SocketHandle::socket()); }
};