diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2024-07-26 16:56:06 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2024-07-30 12:10:06 +0200 |
commit | 470d8b518fec24aa4f7af50b249acb47c595f780 (patch) | |
tree | b5370c4ed1a469ec5e42b74394aa703fca149480 /src | |
parent | 35fe9c1e07464de85ea8138c574c0bc7d07c5a48 (diff) | |
download | justbuild-470d8b518fec24aa4f7af50b249acb47c595f780.tar.gz |
Add extensible struct to be passed to graph traverser
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/execution_engine/executor/TARGETS | 14 | ||||
-rw-r--r-- | src/buildtool/execution_engine/executor/context.hpp | 35 |
2 files changed, 49 insertions, 0 deletions
diff --git a/src/buildtool/execution_engine/executor/TARGETS b/src/buildtool/execution_engine/executor/TARGETS index 4eb5e39d..3af6b46b 100644 --- a/src/buildtool/execution_engine/executor/TARGETS +++ b/src/buildtool/execution_engine/executor/TARGETS @@ -25,4 +25,18 @@ ] , "stage": ["src", "buildtool", "execution_engine", "executor"] } +, "context": + { "type": ["@", "rules", "CC", "library"] + , "name": ["context"] + , "hdrs": ["context.hpp"] + , "deps": + [ ["@", "gsl", "", "gsl"] + , ["src/buildtool/common", "common"] + , ["src/buildtool/common", "config"] + , ["src/buildtool/execution_api/common", "api_bundle"] + , ["src/buildtool/execution_api/remote", "context"] + , ["src/buildtool/progress_reporting", "progress"] + ] + , "stage": ["src", "buildtool", "execution_engine", "executor"] + } } diff --git a/src/buildtool/execution_engine/executor/context.hpp b/src/buildtool/execution_engine/executor/context.hpp new file mode 100644 index 00000000..315ab805 --- /dev/null +++ b/src/buildtool/execution_engine/executor/context.hpp @@ -0,0 +1,35 @@ +// Copyright 2024 Huawei Cloud Computing Technology Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_ENGINE_EXECUTOR_CONTEXT_HPP +#define INCLUDED_SRC_BUILDTOOL_EXECUTION_ENGINE_EXECUTOR_CONTEXT_HPP + +#include "gsl/gsl" +#include "src/buildtool/common/repository_config.hpp" +#include "src/buildtool/common/statistics.hpp" +#include "src/buildtool/execution_api/common/api_bundle.hpp" +#include "src/buildtool/execution_api/remote/context.hpp" +#include "src/buildtool/progress_reporting/progress.hpp" + +/// \brief Aggregate to be passed to graph traverser. +/// \note No field is stored as const ref to avoid binding to temporaries. +struct ExecutionContext final { + gsl::not_null<RepositoryConfig const*> const repo_config; + gsl::not_null<ApiBundle const*> const& apis; + gsl::not_null<RemoteContext const*> const remote_context; + gsl::not_null<Statistics*> const statistics; + gsl::not_null<Progress*> const progress; +}; + +#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_ENGINE_EXECUTOR_CONTEXT_HPP |