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

Userland: Change IPC funcs to use plain arguments instead of a struct

Instead of having a single overloaded handle method each method gets
its own unique method name now.
This commit is contained in:
Gunnar Beutner 2021-05-02 19:54:34 +02:00 committed by Andreas Kling
parent d47f15ab8b
commit 065040872f
50 changed files with 897 additions and 839 deletions

View file

@ -58,34 +58,34 @@ bool RequestClient::set_certificate(Badge<Request>, Request& request, String cer
return send_sync<Messages::RequestServer::SetCertificate>(request.id(), move(certificate), move(key))->success();
}
void RequestClient::handle(const Messages::RequestClient::RequestFinished& message)
void RequestClient::request_finished(i32 request_id, bool success, u32 total_size)
{
RefPtr<Request> request;
if ((request = m_requests.get(message.request_id()).value_or(nullptr))) {
request->did_finish({}, message.success(), message.total_size());
if ((request = m_requests.get(request_id).value_or(nullptr))) {
request->did_finish({}, success, total_size);
}
m_requests.remove(message.request_id());
m_requests.remove(request_id);
}
void RequestClient::handle(const Messages::RequestClient::RequestProgress& message)
void RequestClient::request_progress(i32 request_id, const Optional<u32>& total_size, u32 downloaded_size)
{
if (auto request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr))) {
request->did_progress({}, message.total_size(), message.downloaded_size());
if (auto request = const_cast<Request*>(m_requests.get(request_id).value_or(nullptr))) {
request->did_progress({}, total_size, downloaded_size);
}
}
void RequestClient::handle(const Messages::RequestClient::HeadersBecameAvailable& message)
void RequestClient::headers_became_available(i32 request_id, const IPC::Dictionary& response_headers, const Optional<u32>& status_code)
{
if (auto request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr))) {
if (auto request = const_cast<Request*>(m_requests.get(request_id).value_or(nullptr))) {
HashMap<String, String, CaseInsensitiveStringTraits> headers;
message.response_headers().for_each_entry([&](auto& name, auto& value) { headers.set(name, value); });
request->did_receive_headers({}, headers, message.status_code());
response_headers.for_each_entry([&](auto& name, auto& value) { headers.set(name, value); });
request->did_receive_headers({}, headers, status_code);
}
}
void RequestClient::handle(const Messages::RequestClient::CertificateRequested& message)
void RequestClient::certificate_requested(i32 request_id)
{
if (auto request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr))) {
if (auto request = const_cast<Request*>(m_requests.get(request_id).value_or(nullptr))) {
request->did_request_certificates({});
}
}

View file

@ -33,10 +33,10 @@ public:
private:
RequestClient();
virtual void handle(const Messages::RequestClient::RequestProgress&) override;
virtual void handle(const Messages::RequestClient::RequestFinished&) override;
virtual void handle(const Messages::RequestClient::CertificateRequested&) override;
virtual void handle(const Messages::RequestClient::HeadersBecameAvailable&) override;
virtual void request_progress(i32, Optional<u32> const&, u32) override;
virtual void request_finished(i32, bool, u32) override;
virtual void certificate_requested(i32) override;
virtual void headers_became_available(i32, IPC::Dictionary const&, Optional<u32> const&) override;
HashMap<i32, RefPtr<Request>> m_requests;
};

View file

@ -62,37 +62,37 @@ bool WebSocketClient::set_certificate(Badge<WebSocket>, WebSocket& connection, S
return send_sync<Messages::WebSocketServer::SetCertificate>(connection.id(), move(certificate), move(key))->success();
}
void WebSocketClient::handle(const Messages::WebSocketClient::Connected& message)
void WebSocketClient::connected(i32 connection_id)
{
auto maybe_connection = m_connections.get(message.connection_id());
auto maybe_connection = m_connections.get(connection_id);
if (maybe_connection.has_value())
maybe_connection.value()->did_open({});
}
void WebSocketClient::handle(const Messages::WebSocketClient::Received& message)
void WebSocketClient::received(i32 connection_id, bool is_text, ByteBuffer const& data)
{
auto maybe_connection = m_connections.get(message.connection_id());
auto maybe_connection = m_connections.get(connection_id);
if (maybe_connection.has_value())
maybe_connection.value()->did_receive({}, message.data(), message.is_text());
maybe_connection.value()->did_receive({}, data, is_text);
}
void WebSocketClient::handle(const Messages::WebSocketClient::Errored& message)
void WebSocketClient::errored(i32 connection_id, i32 message)
{
auto maybe_connection = m_connections.get(message.connection_id());
auto maybe_connection = m_connections.get(connection_id);
if (maybe_connection.has_value())
maybe_connection.value()->did_error({}, message.message());
maybe_connection.value()->did_error({}, message);
}
void WebSocketClient::handle(const Messages::WebSocketClient::Closed& message)
void WebSocketClient::closed(i32 connection_id, u16 code, String const& reason, bool clean)
{
auto maybe_connection = m_connections.get(message.connection_id());
auto maybe_connection = m_connections.get(connection_id);
if (maybe_connection.has_value())
maybe_connection.value()->did_close({}, message.code(), message.reason(), message.clean());
maybe_connection.value()->did_close({}, code, reason, clean);
}
void WebSocketClient::handle(const Messages::WebSocketClient::CertificateRequested& message)
void WebSocketClient::certificate_requested(i32 connection_id)
{
auto maybe_connection = m_connections.get(message.connection_id());
auto maybe_connection = m_connections.get(connection_id);
if (maybe_connection.has_value())
maybe_connection.value()->did_request_certificates({});
}

View file

@ -33,11 +33,11 @@ public:
private:
WebSocketClient();
virtual void handle(const Messages::WebSocketClient::Connected&) override;
virtual void handle(const Messages::WebSocketClient::Received&) override;
virtual void handle(const Messages::WebSocketClient::Errored&) override;
virtual void handle(const Messages::WebSocketClient::Closed&) override;
virtual void handle(const Messages::WebSocketClient::CertificateRequested&) override;
virtual void connected(i32) override;
virtual void received(i32, bool, ByteBuffer const&) override;
virtual void errored(i32, i32) override;
virtual void closed(i32, u16, String const&, bool) override;
virtual void certificate_requested(i32) override;
HashMap<i32, NonnullRefPtr<WebSocket>> m_connections;
};