Merge branch 'master' of ssh://main.carlh.net/home/carl/git/libdcp
[libdcp.git] / src / asset.h
index 1871b7ee399120be05e7476b3477e3dc64907368..f69be5a168f38c32c68ace428f389669408cc4ca 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "object.h"
 #include "types.h"
+#include "pkl.h"
 #include <boost/filesystem.hpp>
 #include <boost/function.hpp>
 #include <boost/bind.hpp>
@@ -77,14 +78,10 @@ public:
         */
        void write_to_assetmap (xmlpp::Node* node, boost::filesystem::path root) const;
 
-       /** Write details of the asset to a PKL AssetList node.
-        *  @param node Parent node.
-        *  @param standard Standard to use.
-        */
-       void write_to_pkl (xmlpp::Node* node, boost::filesystem::path root, Standard standard) const;
+       void add_to_pkl (boost::shared_ptr<PKL> pkl, boost::filesystem::path root) const;
 
-       /** @return the most recent disk file used to read or write this asset; may be empty */
-       boost::filesystem::path file () const {
+       /** @return the most recent disk file used to read or write this asset, if there is one */
+       boost::optional<boost::filesystem::path> file () const {
                return _file;
        }
 
@@ -97,12 +94,13 @@ public:
 
 protected:
 
-       /** The most recent disk file used to read or write this asset; may be empty */
-       mutable boost::filesystem::path _file;
+       /** The most recent disk file used to read or write this asset */
+       mutable boost::optional<boost::filesystem::path> _file;
 
 private:
        friend struct ::asset_test;
 
+       /** @return type string for PKLs for this asset */
        virtual std::string pkl_type (Standard standard) const = 0;
 
        /** Hash of _file if it has been computed */