summaryrefslogtreecommitdiff
path: root/src/asset.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-07-31 12:54:03 +0100
committerCarl Hetherington <cth@carlh.net>2012-07-31 12:54:03 +0100
commit4eb8edfa1aea3aa932bcf0f7bb3f626460f58b3c (patch)
treec4c67c3ece9a1e9bd49a1b7f8f87b0617c46eea8 /src/asset.cc
parente3636c080d3d24471e85f519d69af4c11d5ecbd0 (diff)
Lazy digest building.
Diffstat (limited to 'src/asset.cc')
-rw-r--r--src/asset.cc18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/asset.cc b/src/asset.cc
index 8063603a..de299d34 100644
--- a/src/asset.cc
+++ b/src/asset.cc
@@ -51,7 +51,7 @@ Asset::write_to_pkl (ostream& s) const
s << " <Asset>\n"
<< " <Id>urn:uuid:" << _uuid << "</Id>\n"
<< " <AnnotationText>" << _mxf_name << "</AnnotationText>\n"
- << " <Hash>" << _digest << "</Hash>\n"
+ << " <Hash>" << digest() << "</Hash>\n"
<< " <Size>" << filesystem::file_size(mxf_path()) << "</Size>\n"
<< " <Type>application/mxf</Type>\n"
<< " </Asset>\n";
@@ -114,7 +114,7 @@ Asset::equals (shared_ptr<const Asset> other, EqualityFlags flags) const
if (flags & MXF_BITWISE) {
- if (_digest != other->_digest) {
+ if (digest() != other->digest()) {
notes.push_back ("MXF digests differ");
}
@@ -148,3 +148,17 @@ Asset::equals (shared_ptr<const Asset> other, EqualityFlags flags) const
return notes;
}
+
+string
+Asset::digest () const
+{
+ if (_digest.empty ()) {
+ _digest = make_digest (mxf_path().string(), 0);
+ }
+
+ return _digest;
+}
+
+
+
+