00001 #ifndef DBXML_H 00002 #define DBXML_H 00003 00004 #include "DB.hpp" 00005 #include "Node.hpp" 00006 #include "Bookmark.hpp" 00007 #include "Folder.hpp" 00008 #include "DbXMLSaxHandler.hpp" 00009 00010 #include <string> 00011 #include <vector> 00012 #include <util/PlatformUtils.hpp> 00013 #include "sax2/SAX2XMLReader.hpp" 00014 #include "sax2/XMLReaderFactory.hpp" 00015 00019 class DbXML : public DB { 00020 public: 00025 DbXML(); 00026 00031 DbXML(string& database, string& user_name, string& password); 00032 00037 ~DbXML(); 00038 00046 void connect(const string& database, const string& user_name, 00047 const string& password); 00048 00052 virtual void disconnect(); 00053 00054 Folder* getRoot(); 00055 vector<Node*>& getChildren(Folder& parent); 00056 Node* getNode(const string& path); 00057 Folder* getFolder(const string& path); 00058 Bookmark* getBookmark(const string& path); 00059 void remove(Node* node, bool recurse=false); 00060 void save(Node* node); 00061 00062 private: 00063 vector<Node*> items; 00064 00065 SAX2XMLReader* _parser; 00066 DbXMLSaxHandler* _contentHandler; 00067 }; 00068 00069 #endif