00001 #ifndef _xmlconfiguration_hh_ 00002 #define _xmlconfiguration_hh_ 00003 00004 #include "configuration.hh" 00005 #include <libxml++/libxml++.h> 00006 00007 namespace anoid { 00008 namespace config { 00009 00010 class XMLConfiguration: public Configuration { 00011 private: 00012 xmlpp::Node *_xml; 00013 xmlpp::DomParser *parser; 00014 public: 00015 XMLConfiguration(xmlpp::Node *xml): _xml(xml), parser(NULL) {} 00016 XMLConfiguration(char *filename); 00017 virtual ~XMLConfiguration() { if (parser) delete parser; } 00018 00019 virtual std::string getString(const char *name); 00020 virtual bool hasElement(const char *name); 00021 virtual std::string getName(); 00022 virtual std::list<Configuration *> getChildren(); 00023 }; 00024 00025 }; 00026 }; 00027 00028 #endif