00001 #ifndef SDXSTREAMREADER_H
00002 #define SDXSTREAMREADER_H
00003
00004 #include "SDXResourceReader.h"
00005
00006 namespace SDX {
00007 namespace Helpers {
00011 class StreamReader : public SDX::ResourceReader {
00012 public:
00016 StreamReader(std::istream* iStream = 0, SDX::ContentHandler* contentHandler = 0);
00017
00021 void setStream(std::istream* iStream);
00022 protected:
00027 virtual void openStream();
00028
00032 virtual void closeStream();
00033
00037 virtual void startProcessing();
00038
00042 virtual void endProcessing();
00043
00047 virtual bool processLine(std::string& line) = 0;
00048
00052 void setError(std::string message);
00053 private:
00054 void process();
00055
00056 int m_curLine;
00057
00058 std::istream* m_iStream;
00059 };
00060 }
00061 }
00062
00063 #endif