X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FConfig%2FConfig_XMLReader.h;h=7a42fcb09ed58821906493a58ace61396d4150fa;hb=4daaaede3d19f9cf948dc5b3252de941a7b3a4a7;hp=25637fd496e9bad70cb16c8f36fd36fa963074ff;hpb=24a99a1363325ac341314c3f2e18326841940fb7;p=modules%2Fshaper.git diff --git a/src/Config/Config_XMLReader.h b/src/Config/Config_XMLReader.h index 25637fd49..7a42fcb09 100644 --- a/src/Config/Config_XMLReader.h +++ b/src/Config/Config_XMLReader.h @@ -12,27 +12,37 @@ #include "Config_Message.h" #include -#include +#include + +//Forward declaration for xmlNodePtr. +typedef struct _xmlNode xmlNode; +typedef xmlNode *xmlNodePtr; +struct _xmlNode; + class CONFIG_EXPORT Config_XMLReader { public: Config_XMLReader(const std::string& theXmlFile); virtual ~Config_XMLReader(); - std::string documentPath() const; - void setDocumentPath(std::string documentName); - void readAll(); protected: - //! Performs the real import of the given xml file, return false if file is not found - //! or generates an algo error if file content is bad - //! \param theFile name of the imported XML file - //! \returns true if file exists and not corrupted - bool import(); - bool importWorkbench(void*); - void fillFeature(void *theRoot, Config_FeatureMessage& outFeatureMessage); - std::string getProperty(void *theRoot, const char* name); + virtual void processNode(xmlNodePtr aNode); + virtual bool processChildren(xmlNodePtr aNode); + + xmlNodePtr findRoot(); + void readRecursively(xmlNodePtr theParent); + + xmlNodePtr node(void* theNode); + std::string getProperty(xmlNodePtr theNode, const char* property); + /* + * Please note that this function should be called with NULL last argument. + * In example: isNode(aNode, "type1", ["type2", ...], NULL); + * ", NULL" is required to use unlimited number of arguments. + * TODO(sbh): find a way to simplify calling this method. + */ + bool isNode(xmlNodePtr theNode, const char* name, ...); private: std::string m_DocumentPath;