diff options
Diffstat (limited to 'src/buildtool/execution_api/utils/rehash_utils.hpp')
-rw-r--r-- | src/buildtool/execution_api/utils/rehash_utils.hpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/buildtool/execution_api/utils/rehash_utils.hpp b/src/buildtool/execution_api/utils/rehash_utils.hpp index e4a09ca9..f21d5e41 100644 --- a/src/buildtool/execution_api/utils/rehash_utils.hpp +++ b/src/buildtool/execution_api/utils/rehash_utils.hpp @@ -17,6 +17,7 @@ #include <optional> #include <string> +#include <utility> #include <vector> #include "gsl/gsl" @@ -77,6 +78,24 @@ namespace RehashUtils { RepositoryConfig const& repo_config) -> expected<std::vector<Artifact::ObjectInfo>, std::string>; +class Rehasher { + public: + Rehasher(StorageConfig source_config, + StorageConfig target_config, + std::optional<gsl::not_null<ApiBundle const*>> apis) + : source_{std::move(source_config)}, + target_{std::move(target_config)}, + apis_{std::move(apis)} {} + + [[nodiscard]] auto Rehash(Artifact::ObjectInfo const& info) const + -> expected<Artifact::ObjectInfo, std::string>; + + private: + StorageConfig const source_; + StorageConfig const target_; + std::optional<gsl::not_null<ApiBundle const*>> const apis_; +}; + } // namespace RehashUtils #endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_UTILS_REHASH_UTILS_HPP |