X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdkdm_wrapper.h;h=0c2992bc41f6f1d413b8eefce6a90b3a1a3a80f6;hb=2e2f11b29651cffe37c64275dbd45c7563310020;hp=d3ee2a09566c34afaa48036fa8bff507ed6ccf9b;hpb=ba049fdab4a47023d6d5ee8b5ff9bbb710afbabb;p=dcpomatic.git diff --git a/src/lib/dkdm_wrapper.h b/src/lib/dkdm_wrapper.h index d3ee2a095..0c2992bc4 100644 --- a/src/lib/dkdm_wrapper.h +++ b/src/lib/dkdm_wrapper.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2017 Carl Hetherington + Copyright (C) 2017-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,40 +18,46 @@ */ + #include #include -#include +#include + namespace xmlpp { class Element; } + class DKDMGroup; -class DKDMBase : public boost::enable_shared_from_this + +class DKDMBase : public std::enable_shared_from_this { public: + virtual ~DKDMBase () {} virtual std::string name () const = 0; virtual void as_xml (xmlpp::Element *) const = 0; - static boost::shared_ptr read (cxml::ConstNodePtr node); + static std::shared_ptr read (cxml::ConstNodePtr node); - boost::shared_ptr parent () const { + std::shared_ptr parent () const { return _parent; } - void set_parent (boost::shared_ptr parent) { + void set_parent (std::shared_ptr parent) { _parent = parent; } private: - boost::shared_ptr _parent; + std::shared_ptr _parent; }; + class DKDM : public DKDMBase { public: - DKDM (dcp::EncryptedKDM k) + explicit DKDM (dcp::EncryptedKDM k) : _dkdm (k) {} @@ -66,10 +72,11 @@ private: dcp::EncryptedKDM _dkdm; }; + class DKDMGroup : public DKDMBase { public: - DKDMGroup (std::string name) + explicit DKDMGroup (std::string name) : _name (name) {} @@ -79,14 +86,14 @@ public: void as_xml (xmlpp::Element *) const; - std::list > children () const { + std::list> children () const { return _children; } - void add (boost::shared_ptr child); - void remove (boost::shared_ptr child); + void add (std::shared_ptr child, std::shared_ptr previous = std::shared_ptr()); + void remove (std::shared_ptr child); private: std::string _name; - std::list > _children; + std::list> _children; };