virtual ~DKDMBase () {}
virtual std::string name () const = 0;
virtual void as_xml (xmlpp::Element *) const = 0;
+ /** @return true if this thing is, or contains, any actual DKDM */
+ virtual bool contains_dkdm() const = 0;
static std::shared_ptr<DKDMBase> read (cxml::ConstNodePtr node);
std::string name () const override;
void as_xml (xmlpp::Element *) const override;
+ bool contains_dkdm() const override {
+ return true;
+ }
dcp::EncryptedKDM dkdm () const {
return _dkdm;
void as_xml (xmlpp::Element *) const override;
+ bool contains_dkdm() const override;
+
std::list<std::shared_ptr<DKDMBase>> children () const {
return _children;
}
void add (std::shared_ptr<DKDMBase> child, std::shared_ptr<DKDM> previous = std::shared_ptr<DKDM>());
void remove (std::shared_ptr<DKDMBase> child);
+ bool contains(std::string dkdm_id) const;
+
private:
std::string _name;
std::list<std::shared_ptr<DKDMBase>> _children;