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

Userland: Get rid of the OwnPtr<...> boilerplate code for IPC handlers

This commit is contained in:
Gunnar Beutner 2021-05-02 04:39:36 +02:00 committed by Andreas Kling
parent 1a015dc379
commit 7cf2839a26
33 changed files with 389 additions and 385 deletions

View file

@ -31,36 +31,36 @@ void ClientConnection::die()
Core::EventLoop::current().quit(0);
}
OwnPtr<Messages::RequestServer::IsSupportedProtocolResponse> ClientConnection::handle(const Messages::RequestServer::IsSupportedProtocol& message)
Messages::RequestServer::IsSupportedProtocolResponse ClientConnection::handle(const Messages::RequestServer::IsSupportedProtocol& message)
{
bool supported = Protocol::find_by_name(message.protocol().to_lowercase());
return make<Messages::RequestServer::IsSupportedProtocolResponse>(supported);
return supported;
}
OwnPtr<Messages::RequestServer::StartRequestResponse> ClientConnection::handle(const Messages::RequestServer::StartRequest& message)
Messages::RequestServer::StartRequestResponse ClientConnection::handle(const Messages::RequestServer::StartRequest& message)
{
const auto& url = message.url();
if (!url.is_valid()) {
dbgln("StartRequest: Invalid URL requested: '{}'", url);
return make<Messages::RequestServer::StartRequestResponse>(-1, Optional<IPC::File> {});
return { -1, Optional<IPC::File> {} };
}
auto* protocol = Protocol::find_by_name(url.protocol());
if (!protocol) {
dbgln("StartRequest: No protocol handler for URL: '{}'", url);
return make<Messages::RequestServer::StartRequestResponse>(-1, Optional<IPC::File> {});
return { -1, Optional<IPC::File> {} };
}
auto request = protocol->start_request(*this, message.method(), url, message.request_headers().entries(), message.request_body());
if (!request) {
dbgln("StartRequest: Protocol handler failed to start request: '{}'", url);
return make<Messages::RequestServer::StartRequestResponse>(-1, Optional<IPC::File> {});
return { -1, Optional<IPC::File> {} };
}
auto id = request->id();
auto fd = request->request_fd();
m_requests.set(id, move(request));
return make<Messages::RequestServer::StartRequestResponse>(id, IPC::File(fd, IPC::File::CloseAfterSending));
return { id, IPC::File(fd, IPC::File::CloseAfterSending) };
}
OwnPtr<Messages::RequestServer::StopRequestResponse> ClientConnection::handle(const Messages::RequestServer::StopRequest& message)
Messages::RequestServer::StopRequestResponse ClientConnection::handle(const Messages::RequestServer::StopRequest& message)
{
auto* request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr));
bool success = false;
@ -69,7 +69,7 @@ OwnPtr<Messages::RequestServer::StopRequestResponse> ClientConnection::handle(co
m_requests.remove(message.request_id());
success = true;
}
return make<Messages::RequestServer::StopRequestResponse>(success);
return success;
}
void ClientConnection::did_receive_headers(Badge<Request>, Request& request)
@ -100,12 +100,12 @@ void ClientConnection::did_request_certificates(Badge<Request>, Request& request
post_message(Messages::RequestClient::CertificateRequested(request.id()));
}
OwnPtr<Messages::RequestServer::GreetResponse> ClientConnection::handle(const Messages::RequestServer::Greet&)
Messages::RequestServer::GreetResponse ClientConnection::handle(const Messages::RequestServer::Greet&)
{
return make<Messages::RequestServer::GreetResponse>();
return {};
}
OwnPtr<Messages::RequestServer::SetCertificateResponse> ClientConnection::handle(const Messages::RequestServer::SetCertificate& message)
Messages::RequestServer::SetCertificateResponse ClientConnection::handle(const Messages::RequestServer::SetCertificate& message)
{
auto* request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr));
bool success = false;
@ -113,7 +113,7 @@ OwnPtr<Messages::RequestServer::SetCertificateResponse> ClientConnection::handle
request->set_certificate(message.certificate(), message.key());
success = true;
}
return make<Messages::RequestServer::SetCertificateResponse>(success);
return success;
}
}