Bv2.1 7.2.3: Check that subtitle <StartTime> exists and is 0.
[libdcp.git] / src / pkl.h
index aa78ae21b64ce0ca27a1c5b6db9ed7384f382925..a27a9a33aca7a1ccfd3222aac4dd4307fa6d09dd 100644 (file)
--- a/src/pkl.h
+++ b/src/pkl.h
@@ -60,11 +60,16 @@ public:
                return _standard;
        }
 
-       std::string hash (std::string id) const;
-       std::string type (std::string id) const;
+       boost::optional<std::string> hash (std::string id) const;
+       boost::optional<std::string> type (std::string id) const;
 
        void add_asset (std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type);
-       void write (boost::filesystem::path file, boost::shared_ptr<const CertificateChain> signer) const;
+       void write (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 */
+       boost::optional<boost::filesystem::path> file () const {
+               return _file;
+       }
 
 private:
 
@@ -98,7 +103,9 @@ private:
        std::string _issue_date;
        std::string _issuer;
        std::string _creator;
-       std::list<boost::shared_ptr<Asset> > _asset_list;
+       std::list<std::shared_ptr<Asset> > _asset_list;
+       /** The most recent disk file used to read or write this PKL */
+       mutable boost::optional<boost::filesystem::path> _file;
 };
 
 }