summaryrefslogtreecommitdiff
path: root/src/buildtool/storage/fs_utils.hpp
diff options
context:
space:
mode:
authorPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2024-09-23 12:09:44 +0200
committerPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2024-10-25 13:00:43 +0200
commit7571f74dbc53e9b4fe3b9000662ca686960db78e (patch)
treeba1adfd9bd5a2024de2c0ddb0e8c9e76e947bdc2 /src/buildtool/storage/fs_utils.hpp
parentbfefe45f8731e10a92f739d630a3c027fc72bc5b (diff)
downloadjustbuild-7571f74dbc53e9b4fe3b9000662ca686960db78e.tar.gz
StorageUtils: Add generation-aware rehashing ID file map
Such a file could be used to store mappings of digests from CAS or Git cache to digests of different hash type that represent same content.
Diffstat (limited to 'src/buildtool/storage/fs_utils.hpp')
-rw-r--r--src/buildtool/storage/fs_utils.hpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/buildtool/storage/fs_utils.hpp b/src/buildtool/storage/fs_utils.hpp
index 7482457b..25392b91 100644
--- a/src/buildtool/storage/fs_utils.hpp
+++ b/src/buildtool/storage/fs_utils.hpp
@@ -20,6 +20,7 @@
#include <string>
#include "src/buildtool/common/user_structs.hpp"
+#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/file_system/symlinks_map/pragma_special.hpp"
#include "src/buildtool/storage/config.hpp"
#include "src/buildtool/storage/storage.hpp"
@@ -73,6 +74,20 @@ namespace StorageUtils {
std::size_t generation = 0) noexcept
-> std::filesystem::path;
+/// \brief Get the path to the file storing the corresponding artifact hashed by
+/// a different hash function.
+/// \param storage_config Storage under which the file is to be found.
+/// \param target_hash_type Hash type to identify mapping target.
+/// \param hash Hash to identify mapping source.
+/// \param from_git Flag to distinguish further mapping source (CAS / GitCAS)
+/// \param generation Further specificity in location of the file.
+[[nodiscard]] auto GetRehashIDFile(StorageConfig const& storage_config,
+ HashFunction::Type target_hash_type,
+ std::string const& hash,
+ bool from_git,
+ std::size_t generation = 0) noexcept
+ -> std::filesystem::path;
+
/// \brief Write a tree id to file. The parent folder of the file must exist!
[[nodiscard]] auto WriteTreeIDFile(std::filesystem::path const& tree_id_file,
std::string const& tree_id) noexcept -> bool;