diff options
| author | Carl Hetherington <cth@carlh.net> | 2017-02-04 00:08:00 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2017-05-24 12:23:59 +0100 |
| commit | bfb8c684886592f325f85c490d9f0aafd7056734 (patch) | |
| tree | 53b7690652c8e963faf4417af8472d509fb880f7 /src/lib/dkdm_wrapper.h | |
| parent | c94d763e07d9e7b029091e1ea64ba4f7758b3d5b (diff) | |
Missing files.
Diffstat (limited to 'src/lib/dkdm_wrapper.h')
| -rw-r--r-- | src/lib/dkdm_wrapper.h | 78 |
1 files changed, 78 insertions, 0 deletions
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 <cth@carlh.net> + + 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 <http://www.gnu.org/licenses/>. + +*/ + +#include <dcp/encrypted_kdm.h> +#include <libcxml/cxml.h> + +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<DKDMBase> 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<boost::shared_ptr<DKDMBase> > children () const { + return _children; + } + + void add (boost::shared_ptr<DKDMBase> child); + void remove (boost::shared_ptr<DKDMBase> child); + +private: + std::string _name; + std::list<boost::shared_ptr<DKDMBase> > _children; +}; |
