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