Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef EBOOKUTF8STREAM_H_INCLUDED
00011 #define EBOOKUTF8STREAM_H_INCLUDED
00012
00013 #include <boost/scoped_ptr.hpp>
00014
00015 #include <librevenge/librevenge.h>
00016
00017 namespace libebook
00018 {
00019
00020 class EBOOKCharsetConverter;
00021
00022 class EBOOKUTF8Stream : public librevenge::RVNGInputStream
00023 {
00024 public:
00025 explicit EBOOKUTF8Stream(librevenge::RVNGInputStream *strm, EBOOKCharsetConverter *converter = 0);
00026 virtual ~EBOOKUTF8Stream();
00027
00028 virtual bool isStructured();
00029 virtual unsigned subStreamCount();
00030 virtual const char *subStreamName(unsigned id);
00031 virtual bool existsSubStream(const char *name);
00032 virtual librevenge::RVNGInputStream *getSubStreamByName(const char *name);
00033 virtual RVNGInputStream *getSubStreamById(unsigned id);
00034
00035 virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
00036 virtual int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType);
00037 virtual long tell();
00038 virtual bool isEnd();
00039
00040 private:
00041 boost::scoped_ptr<librevenge::RVNGInputStream> m_stream;
00042 };
00043
00044 }
00045
00046 #endif // EBOOKUTF8STREAM_H_INCLUDED
00047
00048