34 #ifndef SOMAIO_UTILITIES_MINFXML2_H
35 #define SOMAIO_UTILITIES_MINFXML2_H
53 extern const std::string
minfTag;
54 extern const std::string
noneTag;
55 extern const std::string
trueTag;
59 extern const std::string
listTag;
112 const std::string &nodeType,
113 const std::string &identifier,
115 const std::string &parentSyntax=std::string(),
116 const std::string &name=std::string() ) = 0;
137 const std::string &identifier,
139 const std::string &parentSyntax=std::string(),
140 const std::string &name=std::string() );
143 virtual void reference(
const std::string &identifier );
146 std::list< carto::rc_ptr< MinfNodeExpander > > _stack;
147 std::map< std::string, carto::Object > _references;
163 const std::string &nodeType,
164 const std::string &identifier,
166 const std::string &parentSyntax=std::string(),
167 const std::string &name=std::string() );
191 const std::string &nodeType,
192 const std::string &identifier,
194 const std::string &parentSyntax=std::string(),
195 const std::string &name=std::string() );
251 void read(
const std::string & );
Abstraction layer for various data sources (file, buffer, socket...).
virtual void reference(MinfTreeExpander &, const std::string &identifier)
DefaultMinfNodeExpander(carto::rc_ptr< ObjectListener > ol=carto::rc_ptr< ObjectListener >(), carto::rc_ptr< carto::SyntaxSet > syntax=carto::rc_ptr< carto::SyntaxSet >())
virtual void endStructure(MinfTreeExpander &, const std::string &nodeType)
virtual std::string startStructure(MinfTreeExpander &, const std::string &nodeType, const std::string &identifier, carto::Object attributes, const std::string &parentSyntax=std::string(), const std::string &name=std::string())
DefaultMinfNodeExpander(carto::rc_ptr< carto::SyntaxSet > syntax)
carto::rc_ptr< carto::SyntaxSet > _syntax
virtual void atom(MinfTreeExpander &, carto::Object, const std::string &identifier)
virtual ~DefaultMinfNodeExpander()
virtual void noMoreObject()
DictionaryBuilder(carto::rc_ptr< ObjectListener >)
DictionaryBuilder(carto::Object, carto::rc_ptr< ObjectListener >)
virtual void nextObject(const carto::Object &)
DictionaryBuilder(carto::Object)
virtual ~DictionaryBuilder()
virtual void noMoreObject()
ListBuilder(carto::rc_ptr< ObjectListener >)
ListBuilder(carto::Object, carto::rc_ptr< ObjectListener >)
virtual void nextObject(const carto::Object &)
ListBuilder(carto::Object)
virtual ~MinfNodeExpander()
virtual void reference(MinfTreeExpander &, const std::string &identifier)=0
virtual std::string startStructure(MinfTreeExpander &, const std::string &nodeType, const std::string &identifier, carto::Object attributes, const std::string &parentSyntax=std::string(), const std::string &name=std::string())=0
virtual void atom(MinfTreeExpander &, carto::Object, const std::string &identifier)=0
virtual void endStructure(MinfTreeExpander &, const std::string &nodeType)=0
virtual ~MinfTreeExpander()
carto::Object getReferencedObject(const std::string &identifier)
virtual void reference(const std::string &identifier)
void push(carto::rc_ptr< MinfNodeExpander >)
carto::rc_ptr< MinfNodeExpander > pop()
virtual void atom(carto::Object, const std::string &identifier)
virtual void endStructure(const std::string &nodeType)
virtual std::string startStructure(const std::string &nodeType, const std::string &identifier, carto::Object attributes, const std::string &parentSyntax=std::string(), const std::string &name=std::string())
void addReference(const std::string &identifier, carto::Object value)
MinfXMLReader(MinfTreeExpander &, carto::rc_ptr< carto::SyntaxSet > syntax)
void read(const std::string &)
virtual void nextObject(const carto::Object &)=0
virtual void noMoreObject()=0
virtual ~ObjectListener()
virtual std::string startStructure(MinfTreeExpander &, const std::string &nodeType, const std::string &identifier, carto::Object attributes, const std::string &parentSyntax=std::string(), const std::string &name=std::string())
SingleDictionaryExpander(carto::Object dictionary, carto::rc_ptr< carto::SyntaxSet > syntax)
virtual ~SingleDictionaryExpander()
const std::string factoryTag
const std::string minfTag
const std::string expanderAttribute
const std::string falseTag
const std::string referenceTag
const std::string stringTag
const std::string numberTag
const std::string trueTag
const std::string listTag
const std::string xhtmlTag
const std::string noneTag
const std::string objectTypeAttribute
const std::string lengthAttribute
const std::string identifierAttribute
const std::string nameAttribute
const std::string dictionaryTag
carto::Object readDictionaryMinfXML(const std::string &fileName, carto::rc_ptr< carto::SyntaxSet > syntax=carto::rc_ptr< carto::SyntaxSet >())
void init_libXML()
just to force initializing libxml2, needs to be called once from the main thread in a multi-threaded ...