00001 #ifndef XMLLOADER_H_
00002 #define XMLLOADER_H_
00003
00004 #include <iostream>
00005 #include <sstream>
00006 #include <string>
00007 #include <vector>
00008 #include <stdexcept>
00009 #include <xmlpull/XmlPullParser.h>
00010 #include <xmlpull/XmlPullParserException.h>
00011 #include <boost/iostreams/filtering_stream.hpp>
00012 #include <boost/iostreams/device/file.hpp>
00013 #include <boost/iostreams/filter/bzip2.hpp>
00014
00015 namespace rcrt
00016 {
00017
00021 class XMLLoader
00022 {
00023 protected:
00024 boost::iostreams::file_source file;
00025 boost::iostreams::filtering_stream<boost::iostreams::input> in;
00026 XmlPullParser parser;
00027 bool isCompressed;
00028 int currentFrame;
00029 bool eof;
00030
00031 XMLLoader(std::string path);
00032
00038 bool nextStartTag(std::string tagName);
00039
00040 public:
00041 virtual ~XMLLoader();
00042
00046 virtual bool goToFrame(const int& n) = 0;
00047
00053 virtual bool nextFrame() = 0;
00054
00055 const int& getFrame();
00056 };
00057
00058 }
00059
00060 #endif