summaryrefslogtreecommitdiff
path: root/src/buildtool/serve_api/serve_service/source_tree.hpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-08-05 11:15:34 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-08-07 15:44:34 +0200
commit602ff2acecc6d80a4b0e19382e1ae73fe3332b6e (patch)
tree78b2b57802e39f63ef3f0c9ffa5e68277b9f1bb5 /src/buildtool/serve_api/serve_service/source_tree.hpp
parent5d2163fbb485186b98761a483ceebd3f09851c28 (diff)
downloadjustbuild-602ff2acecc6d80a4b0e19382e1ae73fe3332b6e.tar.gz
Remove code duplication from SourceTreeService
Diffstat (limited to 'src/buildtool/serve_api/serve_service/source_tree.hpp')
-rw-r--r--src/buildtool/serve_api/serve_service/source_tree.hpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/buildtool/serve_api/serve_service/source_tree.hpp b/src/buildtool/serve_api/serve_service/source_tree.hpp
index 288e7da8..fb0259f9 100644
--- a/src/buildtool/serve_api/serve_service/source_tree.hpp
+++ b/src/buildtool/serve_api/serve_service/source_tree.hpp
@@ -20,6 +20,7 @@
#include <mutex>
#include <optional>
#include <string>
+#include <type_traits>
#include <unordered_map>
#include <utility>
#include <vector>
@@ -177,6 +178,11 @@ class SourceTreeService final
ServeArchiveTreeResponse* response)
-> ::grpc::Status;
+ template <ObjectType kType, typename TResponse>
+ [[nodiscard]] auto SyncGitEntryToCas(std::string const& object_hash,
+ std::filesystem::path const& repo_path)
+ const noexcept -> std::remove_cvref_t<decltype(TResponse::OK)>;
+
/// \brief Resolves a tree from given repository with respect to symlinks.
/// The resolved tree will always be placed in the Git cache.
[[nodiscard]] auto ResolveContentTree(