1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:17:44 +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

@ -98,11 +98,12 @@ private:
NonnullRefPtrVector<Socket> m_pending;
};
template<typename SocketType>
class SocketHandle {
public:
SocketHandle() {}
SocketHandle(RefPtr<Socket>&& socket)
SocketHandle(NonnullRefPtr<SocketType>&& socket)
: m_socket(move(socket))
{
if (m_socket)
@ -125,12 +126,12 @@ public:
operator bool() const { return m_socket; }
Socket* operator->() { return &socket(); }
const Socket* operator->() const { return &socket(); }
SocketType* operator->() { return &socket(); }
const SocketType* operator->() const { return &socket(); }
Socket& socket() { return *m_socket; }
const Socket& socket() const { return *m_socket; }
SocketType& socket() { return *m_socket; }
const SocketType& socket() const { return *m_socket; }
private:
RefPtr<Socket> m_socket;
RefPtr<SocketType> m_socket;
};