From ddf097f7a1c1bb438f1fc97150a263cf28be9293 Mon Sep 17 00:00:00 2001 From: Alberto Sartori Date: Tue, 14 Feb 2023 10:45:15 +0100 Subject: ExecutionServiceImpl: refactor Execute --- .../execution_service/execution_server.hpp | 40 ++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'src/buildtool/execution_api/execution_service/execution_server.hpp') diff --git a/src/buildtool/execution_api/execution_service/execution_server.hpp b/src/buildtool/execution_api/execution_service/execution_server.hpp index 02c4ed36..365858bd 100644 --- a/src/buildtool/execution_api/execution_service/execution_server.hpp +++ b/src/buildtool/execution_api/execution_service/execution_server.hpp @@ -91,7 +91,7 @@ class ExecutionServiceImpl final auto Execute( ::grpc::ServerContext* context, const ::build::bazel::remote::execution::v2::ExecuteRequest* request, - ::grpc::ServerWriter< ::google::longrunning::Operation>* writer) + ::grpc::ServerWriter<::google::longrunning::Operation>* writer) -> ::grpc::Status override; // Wait for an execution operation to complete. When the client initially @@ -105,10 +105,46 @@ class ExecutionServiceImpl final ::grpc::ServerContext* context, const ::build::bazel::remote::execution::v2::WaitExecutionRequest* request, - ::grpc::ServerWriter< ::google::longrunning::Operation>* writer) + ::grpc::ServerWriter<::google::longrunning::Operation>* writer) -> ::grpc::Status override; private: + [[nodiscard]] auto GetAction( + ::build::bazel::remote::execution::v2::ExecuteRequest const* request) + const noexcept -> std::pair< + std::optional<::build::bazel::remote::execution::v2::Action>, + std::optional>; + [[nodiscard]] auto GetCommand( + ::build::bazel::remote::execution::v2::Action const& action) + const noexcept -> std::pair< + std::optional<::build::bazel::remote::execution::v2::Command>, + std::optional>; + + [[nodiscard]] auto GetIExecutionAction( + ::build::bazel::remote::execution::v2::ExecuteRequest const* request, + ::build::bazel::remote::execution::v2::Action const& action) const + -> std::pair, + std::optional>; + + [[nodiscard]] auto GetResponse( + ::build::bazel::remote::execution::v2::ExecuteRequest const* request, + IExecutionResponse::Ptr const& i_execution_response) const noexcept + -> std::pair< + std::optional< + ::build::bazel::remote::execution::v2::ExecuteResponse>, + std::optional>; + + [[nodiscard]] auto WriteResponse( + ::build::bazel::remote::execution::v2::ExecuteRequest const* request, + IExecutionResponse::Ptr const& i_execution_response, + ::build::bazel::remote::execution::v2::Action const& action, + ::grpc::ServerWriter<::google::longrunning::Operation>* writer) + const noexcept -> std::optional; + + [[nodiscard]] auto AddResult( + ::build::bazel::remote::execution::v2::ExecuteResponse* response, + IExecutionResponse::Ptr const& i_execution_response, + std::string const& hash) const noexcept -> std::optional; LocalStorage storage_{}; IExecutionApi::Ptr api_{new LocalApi()}; Logger logger_{"execution-service"}; -- cgit v1.2.3