From bfb8c684886592f325f85c490d9f0aafd7056734 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 4 Feb 2017 00:08:00 +0000 Subject: Missing files. --- src/lib/dkdm_wrapper.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/lib/dkdm_wrapper.h (limited to 'src/lib/dkdm_wrapper.h') diff --git a/src/lib/dkdm_wrapper.h b/src/lib/dkdm_wrapper.h new file mode 100644 index 000000000..b877722d9 --- /dev/null +++ b/src/lib/dkdm_wrapper.h @@ -0,0 +1,78 @@ +/* + Copyright (C) 2017 Carl Hetherington + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see . + +*/ + +#include +#include + +namespace xmlpp { + class Element; +} + +class DKDMBase +{ +public: + virtual std::string name () const = 0; + virtual void as_xml (xmlpp::Element *) const = 0; + + static boost::shared_ptr read (cxml::ConstNodePtr node); +}; + +class DKDM : public DKDMBase +{ +public: + DKDM (dcp::EncryptedKDM k) + : _dkdm (k) + {} + + std::string name () const; + void as_xml (xmlpp::Element *) const; + + dcp::EncryptedKDM dkdm () const { + return _dkdm; + } + +private: + dcp::EncryptedKDM _dkdm; +}; + +class DKDMGroup : public DKDMBase +{ +public: + DKDMGroup (std::string name) + : _name (name) + {} + + std::string name () const { + return _name; + } + + void as_xml (xmlpp::Element *) const; + + std::list > children () const { + return _children; + } + + void add (boost::shared_ptr child); + void remove (boost::shared_ptr child); + +private: + std::string _name; + std::list > _children; +}; -- cgit v1.2.3