- /** Write details of the asset to a CPL AssetList node.
- * @param p Parent element.
- * @param i true to use the Interop standard, false for SMPTE.
- */
- virtual void write_to_cpl (xmlpp::Element* p, bool i) const = 0;
-
- /** Write details of the asset to a PKL AssetList node.
- * @param p Parent node.
- */
- void write_to_pkl (xmlpp::Node *) const;
-
- /** Write details of the asset to a ASSETMAP stream.
- * @param s Stream.
- */
- void write_to_assetmap (xmlpp::Node *) const;
-
- /** Compute the digest for this asset. Calling this is optional: if
- * it is not called, the digest will be computed when required. However,
- * calling this method allows the caller to see the progress of the
- * computation, which can be long for large assets.
- * @param Called with progress between 0 and 1.
- */
- void compute_digest (boost::function<void (float)> progress);
-
- std::string uuid () const {
- return _uuid;
+ /** @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;