Athena IO Library
IStreamWriter.hpp
1 #ifndef ISTREAMWRITER_HPP
2 #define ISTREAMWRITER_HPP
3 
4 #include "IStream.hpp"
5 
6 namespace Athena
7 {
8 namespace io
9 {
10 class IStreamWriter : public IStream
11 {
12 public:
13  virtual ~IStreamWriter() {}
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 void writeBit(bool) = 0;
26  virtual void writeUByte(atUint8) = 0;
27  virtual void writeByte(atInt8) = 0;
28  virtual void writeUBytes(atUint8*, atUint64) = 0;
29  virtual void writeBytes(atInt8*, atUint64) = 0;
30  virtual void writeUint16(atUint16) = 0;
31  virtual void writeInt16(atInt16) = 0;
32  virtual void writeUint32(atUint32) = 0;
33  virtual void writeInt32(atInt32) = 0;
34  virtual void writeUint64(atUint64) = 0;
35  virtual void writeInt64(atInt64) = 0;
36  virtual void writeDouble(double) = 0;
37  virtual void writeFloat(float) = 0;
38  virtual void writeBool(bool) = 0;
39  virtual void writeString(const std::string&) = 0;
40  virtual void writeUnicode(const std::string&) = 0;
41  virtual void fill(atUint8, atUint64) = 0;
42  virtual void fill(atInt8, atUint64) = 0;
43 };
44 }
45 }
46 #endif // STREAMWRITER_HPP
47