From 619def44c1cca9f3cdf63544d5f24f2c7a7d9b77 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Tue, 22 Feb 2022 17:03:21 +0100 Subject: Initial self-hosting commit This is the initial version of our tool that is able to build itself. In can be bootstrapped by ./bin/bootstrap.py Co-authored-by: Oliver Reiche Co-authored-by: Victor Moreno --- .../execution_api/common/execution_response.hpp | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/buildtool/execution_api/common/execution_response.hpp (limited to 'src/buildtool/execution_api/common/execution_response.hpp') diff --git a/src/buildtool/execution_api/common/execution_response.hpp b/src/buildtool/execution_api/common/execution_response.hpp new file mode 100644 index 00000000..76349018 --- /dev/null +++ b/src/buildtool/execution_api/common/execution_response.hpp @@ -0,0 +1,48 @@ +#ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_REMOTE_EXECUTION_RESPONSE_HPP +#define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_REMOTE_EXECUTION_RESPONSE_HPP + +#include +#include +#include +#include + +#include "gsl-lite/gsl-lite.hpp" +#include "src/buildtool/common/artifact.hpp" + +/// \brief Abstract response. +/// Response of an action execution. Contains outputs from multiple commands and +/// a single container with artifacts. +class IExecutionResponse { + public: + using Ptr = std::unique_ptr; + using ArtifactInfos = std::unordered_map; + + enum class StatusCode { Failed, Success }; + + IExecutionResponse() = default; + IExecutionResponse(IExecutionResponse const&) = delete; + IExecutionResponse(IExecutionResponse&&) = delete; + auto operator=(IExecutionResponse const&) -> IExecutionResponse& = delete; + auto operator=(IExecutionResponse &&) -> IExecutionResponse& = delete; + virtual ~IExecutionResponse() = default; + + [[nodiscard]] virtual auto Status() const noexcept -> StatusCode = 0; + + [[nodiscard]] virtual auto ExitCode() const noexcept -> int = 0; + + [[nodiscard]] virtual auto IsCached() const noexcept -> bool = 0; + + [[nodiscard]] virtual auto HasStdErr() const noexcept -> bool = 0; + + [[nodiscard]] virtual auto HasStdOut() const noexcept -> bool = 0; + + [[nodiscard]] virtual auto StdErr() noexcept -> std::string = 0; + + [[nodiscard]] virtual auto StdOut() noexcept -> std::string = 0; + + [[nodiscard]] virtual auto ActionDigest() const noexcept -> std::string = 0; + + [[nodiscard]] virtual auto Artifacts() const noexcept -> ArtifactInfos = 0; +}; + +#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_REMOTE_EXECUTION_RESPONSE_HPP -- cgit v1.2.3