1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 14:57:34 +00:00

LibIPC+Services: Make ClientConnection take socket as NonnullRefPtr

This avoids getting into the awkward situation where the socket is
still part-owned by main() in multi-instance service. Also it just
reads nicer.
This commit is contained in:
Andreas Kling 2020-07-06 13:23:39 +02:00
parent f9d3055691
commit 94ddb07e58
25 changed files with 40 additions and 40 deletions

View file

@ -41,8 +41,8 @@ void ClientConnection::for_each_client(Function<void(ClientConnection&)> callbac
}
}
ClientConnection::ClientConnection(Core::LocalSocket& socket, int client_id)
: IPC::ClientConnection<ClipboardServerEndpoint>(*this, socket, client_id)
ClientConnection::ClientConnection(NonnullRefPtr<Core::LocalSocket> socket, int client_id)
: IPC::ClientConnection<ClipboardServerEndpoint>(*this, move(socket), client_id)
{
s_connections.set(client_id, *this);
}

View file

@ -37,7 +37,7 @@ class ClientConnection final : public IPC::ClientConnection<ClipboardServerEndpo
C_OBJECT(ClientConnection);
public:
explicit ClientConnection(Core::LocalSocket&, int client_id);
explicit ClientConnection(NonnullRefPtr<Core::LocalSocket>, int client_id);
virtual ~ClientConnection() override;
virtual void die() override;

View file

@ -63,7 +63,7 @@ int main(int, char**)
}
static int s_next_client_id = 0;
int client_id = ++s_next_client_id;
IPC::new_client_connection<Clipboard::ClientConnection>(*client_socket, client_id);
IPC::new_client_connection<Clipboard::ClientConnection>(client_socket.release_nonnull(), client_id);
};
Clipboard::Storage::the().on_content_change = [&] {