summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/computed_roots/TARGETS2
-rw-r--r--src/buildtool/computed_roots/evaluate.cpp4
-rw-r--r--src/buildtool/tree_structure/TARGETS8
-rw-r--r--src/buildtool/tree_structure/compute_tree_structure.hpp41
-rw-r--r--src/buildtool/tree_structure/tree_structure_utils.cpp (renamed from src/buildtool/tree_structure/compute_tree_structure.cpp)11
-rw-r--r--src/buildtool/tree_structure/tree_structure_utils.hpp44
6 files changed, 56 insertions, 54 deletions
diff --git a/src/buildtool/computed_roots/TARGETS b/src/buildtool/computed_roots/TARGETS
index d15c4b8c..fde38693 100644
--- a/src/buildtool/computed_roots/TARGETS
+++ b/src/buildtool/computed_roots/TARGETS
@@ -97,8 +97,8 @@
, ["src/buildtool/progress_reporting", "base_progress_reporter"]
, ["src/buildtool/progress_reporting", "progress"]
, ["src/buildtool/storage", "storage"]
- , ["src/buildtool/tree_structure", "compute_tree_structure"]
, ["src/buildtool/tree_structure", "tree_structure_cache"]
+ , ["src/buildtool/tree_structure", "tree_structure_utils"]
, ["src/utils/cpp", "expected"]
, ["src/utils/cpp", "tmp_dir"]
, ["src/utils/cpp", "vector"]
diff --git a/src/buildtool/computed_roots/evaluate.cpp b/src/buildtool/computed_roots/evaluate.cpp
index f53e7a44..332b079e 100644
--- a/src/buildtool/computed_roots/evaluate.cpp
+++ b/src/buildtool/computed_roots/evaluate.cpp
@@ -70,8 +70,8 @@
#include "src/buildtool/progress_reporting/base_progress_reporter.hpp"
#include "src/buildtool/progress_reporting/progress.hpp"
#include "src/buildtool/storage/storage.hpp"
-#include "src/buildtool/tree_structure/compute_tree_structure.hpp"
#include "src/buildtool/tree_structure/tree_structure_cache.hpp"
+#include "src/buildtool/tree_structure/tree_structure_utils.hpp"
#include "src/utils/cpp/expected.hpp"
#include "src/utils/cpp/tmp_dir.hpp"
#include "src/utils/cpp/vector.hpp"
@@ -457,7 +457,7 @@ void ComputeTreeStructureAndFill(
// Compute tree structure and add it to the cache:
auto const tree_structure =
- ComputeTreeStructure(*digest, storage, tree_structure_cache);
+ TreeStructureUtils::Compute(*digest, storage, tree_structure_cache);
if (not tree_structure) {
std::invoke(*logger, tree_structure.error(), /*fatal=*/true);
return;
diff --git a/src/buildtool/tree_structure/TARGETS b/src/buildtool/tree_structure/TARGETS
index 0e8d232a..8f8ec9c2 100644
--- a/src/buildtool/tree_structure/TARGETS
+++ b/src/buildtool/tree_structure/TARGETS
@@ -20,11 +20,11 @@
, ["src/utils/cpp", "expected"]
]
}
-, "compute_tree_structure":
+, "tree_structure_utils":
{ "type": ["@", "rules", "CC", "library"]
- , "name": ["compute_tree_structure"]
- , "hdrs": ["compute_tree_structure.hpp"]
- , "srcs": ["compute_tree_structure.cpp"]
+ , "name": ["tree_structure_utils"]
+ , "hdrs": ["tree_structure_utils.hpp"]
+ , "srcs": ["tree_structure_utils.cpp"]
, "deps":
[ "tree_structure_cache"
, ["src/buildtool/common", "common"]
diff --git a/src/buildtool/tree_structure/compute_tree_structure.hpp b/src/buildtool/tree_structure/compute_tree_structure.hpp
deleted file mode 100644
index dc31d814..00000000
--- a/src/buildtool/tree_structure/compute_tree_structure.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// 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_TREE_STRUCTURE_COMPUTE_TREE_STRUCTURE_HPP
-#define INCLUDED_SRC_BUILDTOOL_TREE_STRUCTURE_COMPUTE_TREE_STRUCTURE_HPP
-
-#include <string>
-
-#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/storage/storage.hpp"
-#include "src/buildtool/tree_structure/tree_structure_cache.hpp"
-#include "src/utils/cpp/expected.hpp"
-
-/// \brief Compute the tree structure of a git tree and add corresponding
-/// coupling to the cache. Tree structure is a directory, where all blobs and
-/// symlinks are replaced with empty blobs. Every subtree gets written to the
-/// cache as well. Expects tree is present in the storage.
-/// \param tree Git tree to be analyzed. Must be present in the storage.
-/// \param storage Storage (GitSHA1) to be used for adding new tree
-/// structure artifacts
-/// \param cache Cache for storing key-value dependencies.
-/// \return Digest of the tree structure that is present in the storage on
-/// success, or an error message on failure.
-[[nodiscard]] auto ComputeTreeStructure(
- ArtifactDigest const& tree,
- Storage const& storage,
- TreeStructureCache const& cache) noexcept
- -> expected<ArtifactDigest, std::string>;
-
-#endif // INCLUDED_SRC_BUILDTOOL_TREE_STRUCTURE_COMPUTE_TREE_STRUCTURE_HPP
diff --git a/src/buildtool/tree_structure/compute_tree_structure.cpp b/src/buildtool/tree_structure/tree_structure_utils.cpp
index 1e1265cd..fd897672 100644
--- a/src/buildtool/tree_structure/compute_tree_structure.cpp
+++ b/src/buildtool/tree_structure/tree_structure_utils.cpp
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/buildtool/tree_structure/compute_tree_structure.hpp"
+#include "src/buildtool/tree_structure/tree_structure_utils.hpp"
#include <algorithm>
#include <functional>
@@ -31,9 +31,9 @@
#include "src/utils/cpp/hex_string.hpp"
#include "src/utils/cpp/path.hpp"
-auto ComputeTreeStructure(ArtifactDigest const& tree,
- Storage const& storage,
- TreeStructureCache const& cache) noexcept
+auto TreeStructureUtils::Compute(ArtifactDigest const& tree,
+ Storage const& storage,
+ TreeStructureCache const& cache) noexcept
-> expected<ArtifactDigest, std::string> {
if (not tree.IsTree() or not ProtocolTraits::IsNative(tree.GetHashType())) {
return unexpected{fmt::format("Not a git tree: {}", tree.hash())};
@@ -89,8 +89,7 @@ auto ComputeTreeStructure(ArtifactDigest const& tree,
if (not git_digest) {
return unexpected{git_digest.error()};
}
- auto sub_tree =
- ComputeTreeStructure(*git_digest, storage, cache);
+ auto sub_tree = Compute(*git_digest, storage, cache);
if (not sub_tree) {
return sub_tree;
}
diff --git a/src/buildtool/tree_structure/tree_structure_utils.hpp b/src/buildtool/tree_structure/tree_structure_utils.hpp
new file mode 100644
index 00000000..56dd1249
--- /dev/null
+++ b/src/buildtool/tree_structure/tree_structure_utils.hpp
@@ -0,0 +1,44 @@
+// 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_TREE_STRUCTURE_TREE_STRUCTURE_UTILS_HPP
+#define INCLUDED_SRC_BUILDTOOL_TREE_STRUCTURE_TREE_STRUCTURE_UTILS_HPP
+
+#include <string>
+
+#include "src/buildtool/common/artifact_digest.hpp"
+#include "src/buildtool/storage/storage.hpp"
+#include "src/buildtool/tree_structure/tree_structure_cache.hpp"
+#include "src/utils/cpp/expected.hpp"
+
+class TreeStructureUtils final {
+ public:
+ /// \brief Compute the tree structure of a git tree and add corresponding
+ /// coupling to the cache. Tree structure is a directory, where all blobs
+ /// and symlinks are replaced with empty blobs. Every subtree gets written
+ /// to the cache as well. Expects tree is present in the storage.
+ /// \param tree Git tree to be analyzed. Must be present in the
+ /// storage.
+ /// \param storage Storage (GitSHA1) to be used for adding new tree
+ /// structure artifacts
+ /// \param cache Cache for storing key-value dependencies.
+ /// \return Digest of the tree structure that is present in the storage on
+ /// success, or an error message on failure.
+ [[nodiscard]] static auto Compute(ArtifactDigest const& tree,
+ Storage const& storage,
+ TreeStructureCache const& cache) noexcept
+ -> expected<ArtifactDigest, std::string>;
+};
+
+#endif // INCLUDED_SRC_BUILDTOOL_TREE_STRUCTURE_TREE_STRUCTURE_UTILS_HPP