From 96e1c1e817887ebf51d7f825306b26e8abe2f717 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 20 Jun 2023 22:06:02 +0200 Subject: [PATCH] Add Asset::set_file_preserving_hash(). --- src/asset.cc | 7 +++++++ src/asset.h | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/src/asset.cc b/src/asset.cc index cd56c3ea..b69e68e8 100644 --- a/src/asset.cc +++ b/src/asset.cc @@ -162,6 +162,13 @@ Asset::set_file (path file) const } +void +Asset::set_file_preserving_hash(path file) const +{ + _file = absolute(file); +} + + void Asset::rename_file(path file) { diff --git a/src/asset.h b/src/asset.h index 923720ff..c5d50010 100644 --- a/src/asset.h +++ b/src/asset.h @@ -109,6 +109,15 @@ public: */ void set_file (boost::filesystem::path file) const; + /** Set the file that holds this asset on disk. Calling this function + * preserves the object's store of its hash, so if the object already + * has a hash it is up to the caller to ensure that the new file has + * the same hash. + * + * @param file New file's path. + */ + void set_file_preserving_hash(boost::filesystem::path file) const; + /** Set the file that holds this asset on disk. The new file must * be exactly the same as the old one, as this function assumes * that the object's hash does not change. -- 2.30.2