summaryrefslogtreecommitdiff
path: root/src/pkl.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-12-22 01:59:11 +0100
committerCarl Hetherington <cth@carlh.net>2022-12-22 23:43:03 +0100
commit4ddd146759e5346bd6c4b4444ee1424327f14a2a (patch)
treec927e85f5a2a040788b159f6591c3679b9bfab49 /src/pkl.h
parentf657337815c5f21e2edd99fdaa501f0ff8acc6b1 (diff)
Write OriginalFileName tags in PKL (DoM #2394).
Without these it EasyDCP gives errors like "Id field in PKL must match uuid in asset" "Each Id used in the PKL files must be unique or reference the same file" which seem wrong but, as usual, here we are.
Diffstat (limited to 'src/pkl.h')
-rw-r--r--src/pkl.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/pkl.h b/src/pkl.h
index 8b1b88a3..8a1d07f9 100644
--- a/src/pkl.h
+++ b/src/pkl.h
@@ -66,7 +66,7 @@ public:
boost::optional<std::string> type (std::string id) const;
void clear_assets();
- void add_asset (std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type);
+ void add_asset(std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type, std::string original_filename);
void write_xml (boost::filesystem::path file, std::shared_ptr<const CertificateChain> signer) const;
/** @return the most recent disk file used to read or write this PKL, if there is one */
@@ -83,14 +83,16 @@ public:
, _hash (node->string_child("Hash"))
, _size (node->number_child<int64_t>("Size"))
, _type (node->string_child("Type"))
+ , _original_filename(node->optional_string_child("OriginalFileName"))
{}
- Asset (std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type)
+ Asset(std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type, std::string original_filename)
: Object (id)
, _annotation_text (annotation_text)
, _hash (hash)
, _size (size)
, _type (type)
+ , _original_filename(original_filename)
{}
boost::optional<std::string> annotation_text () const {
@@ -109,11 +111,16 @@ public:
return _type;
}
+ boost::optional<std::string> original_filename() const {
+ return _original_filename;
+ }
+
private:
boost::optional<std::string> _annotation_text;
std::string _hash;
int64_t _size = 0;
std::string _type;
+ boost::optional<std::string> _original_filename;
};
std::vector<std::shared_ptr<Asset>> asset_list () const {