Athena IO Library
IStreamReader.hpp
1 #ifndef ISTREAMREADER_HPP
2 #define ISTREAMREADER_HPP
3 
4 #include "IStream.hpp"
5 
6 namespace Athena
7 {
8 namespace io
9 {
10 class IStreamReader : public IStream
11 {
12 public:
13  virtual ~IStreamReader() {}
14  virtual void setEndian(Endian) = 0;
15  virtual Endian endian() const = 0;
16  virtual bool isBigEndian() const = 0;
17  virtual bool isLittleEndian()const = 0;
18  virtual bool isOpen() const = 0;
19  virtual void seek(atInt64, SeekOrigin) = 0;
20  virtual void seekAlign32() = 0;
21  virtual bool atEnd() const = 0;
22  virtual atUint64 position() const = 0;
23  virtual atUint64 length() const = 0;
24  virtual void seekBit(int) = 0;
25  virtual bool readBit() = 0;
26  virtual atUint8 readUByte() = 0;
27  virtual atInt8 readByte() = 0;
28  virtual atUint8* readUBytes(atUint64) = 0;
29  virtual atInt8* readBytes(atUint64) = 0;
30  virtual atUint64 readUBytesToBuf(void*, atUint64) = 0;
31  virtual atUint64 readBytesToBuf(void*, atUint64) = 0;
32  virtual atUint16 readUint16() = 0;
33  virtual atInt16 readInt16() = 0;
34  virtual atUint32 readUint32() = 0;
35  virtual atInt32 readInt32() = 0;
36  virtual atUint64 readUint64() = 0;
37  virtual atInt64 readInt64() = 0;
38  virtual double readDouble() = 0;
39  virtual float readFloat() = 0;
40  virtual bool readBool() = 0;
41  virtual std::string readUnicode(atInt32 = -1) = 0;
42  virtual std::string readString(atInt32 = -1) = 0;
43 };
44 }
45 }
46 #endif // ISTREAMREADER
47