diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2024-09-23 12:09:44 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2024-10-25 13:00:43 +0200 |
commit | 7571f74dbc53e9b4fe3b9000662ca686960db78e (patch) | |
tree | ba1adfd9bd5a2024de2c0ddb0e8c9e76e947bdc2 /src/buildtool/storage/fs_utils.hpp | |
parent | bfefe45f8731e10a92f739d630a3c027fc72bc5b (diff) | |
download | justbuild-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.hpp | 15 |
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; |