template<class ParentContext, class ElementTag> | |
class same_context_with_xml_element: boost::noncopyable | |
{ | |
public: | |
typedef ParentContext type; | |
template<class XMLElement> | |
same_context_with_xml_element(ParentContext & context, XMLElement const & xml_elem) | |
: context_(context) | |
{ | |
context_.on_enter_element(ElementTag(), xml_elem); | |
} | |
type & get() const { return context_; } | |
void on_exit_element() const | |
{ | |
context_.on_exit_element(); | |
} | |
private: | |
type & context_; | |
}; |
struct ChildContextFactories | |
{ | |
template<class ParentContext, class ElementTag, class Enable = void> | |
struct apply | |
{ | |
typedef svgpp::factory::context::same_context_with_xml_element<BaseContext> type; | |
}; | |
}; |
{ | |
document_traversal< | |
... | |
context_factories<ChildContextFactories> | |
>::load_document(xml_root_element, context); | |
} |