#ifndef NESTEDTAGSUPPORT #define NESTEDTAGSUPPORT #include "tag.h" namespace Media { template class LIB_EXPORT NestingSupportingTag : public Tag { public: NestingSupportingTag(); const std::vector &nestedTags() const; TagType *parent() const; bool setParent(Tag *tag); virtual TagType *nestedTag(size_t index) const; virtual size_t nestedTagCount() const; //const std::vector nestedTags() const; virtual bool supportsNestedTags() const; private: std::vector m_nestedTags; TagType *m_parent; }; inline const std::vector &NestingSupportingTag::nestedTags() const { return m_nestedTags; } inline TagType *NestingSupportingTag::parent() const { return m_parent; } bool NestingSupportingTag::setParent(Tag *tag) { if(m_parent != tag) { if() { } } } inline TagType *NestingSupportingTag::nestedTag(size_t index) const { return m_nestedTags.at(index); } inline size_t NestingSupportingTag::nestedTagCount() const { return m_nestedTags.size(); } inline bool NestingSupportingTag::supportsNestedTags() const { return true; } } #endif // NESTEDTAGSUPPORT