diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-07-31 12:54:03 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-07-31 12:54:03 +0100 |
| commit | 4eb8edfa1aea3aa932bcf0f7bb3f626460f58b3c (patch) | |
| tree | c4c67c3ece9a1e9bd49a1b7f8f87b0617c46eea8 /src/asset.cc | |
| parent | e3636c080d3d24471e85f519d69af4c11d5ecbd0 (diff) | |
Lazy digest building.
Diffstat (limited to 'src/asset.cc')
| -rw-r--r-- | src/asset.cc | 18 |
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; +} + + + + |
