54 }; |
54 }; |
55 |
55 |
56 class Bytestream |
56 class Bytestream |
57 { |
57 { |
58 public: |
58 public: |
59 Bytestream(ByteArray& data); |
59 Bytestream(std::vector<unsigned char>& data); |
60 |
60 |
61 int bytesLeft() const; |
61 int bytesLeft() const; |
62 ByteArray::iterator getCurrentIterator(); |
62 std::vector<unsigned char>::iterator getCurrentIterator(); |
63 int position() const; |
63 int position() const; |
64 ByteArray readBuffer(int length); |
64 std::vector<unsigned char> readBuffer(int length); |
65 int8_t readByte(); |
65 int8_t readByte(); |
66 int32_t readLong(); |
66 int32_t readLong(); |
67 int16_t readShort(); |
67 int16_t readShort(); |
68 std::string readString(); |
68 std::string readString(); |
69 float readFloat(); |
69 float readFloat(); |
70 void rewind(); |
70 void rewind(); |
71 void seek(int position); |
71 void seek(int position); |
72 void write(const unsigned char* val, unsigned int length); |
72 void write(const unsigned char* val, unsigned int length); |
73 void writeBuffer(const ByteArray& other); |
73 void writeBuffer(const std::vector<unsigned char>& other); |
74 void writeByte(int8_t value); |
74 void writeByte(int8_t value); |
75 void writeDouble(double val); |
75 void writeDouble(double val); |
76 void writeFloat(float value); |
76 void writeFloat(float value); |
77 void writeLong(int32_t value); |
77 void writeLong(int32_t value); |
78 void writeShort(int16_t value); |
78 void writeShort(int16_t value); |
79 void writeString(const std::string& string); |
79 void writeString(const std::string& string); |
80 |
80 |
81 private: |
81 private: |
82 ByteArray& m_data; |
82 std::vector<unsigned char>& m_data; |
83 int m_position; |
83 int m_position; |
84 |
84 |
85 int8_t read(); |
85 int8_t read(); |
86 void ensureReadSpace(int bytes); |
86 void ensureReadSpace(int bytes); |
87 }; |
87 }; |