23 #ifndef COMMON_STREAM_H 24 #define COMMON_STREAM_H 26 #include "common/endian.h" 27 #include "common/scummsys.h" 28 #include "common/str.h" 42 class SeekableReadStream;
60 virtual bool err()
const {
return false; }
90 virtual uint32 write(
const void *dataPtr, uint32 dataSize) = 0;
102 virtual bool flush() {
return true; }
126 virtual int32 pos()
const = 0;
152 value = TO_LE_16(value);
159 value = TO_LE_32(value);
166 value = TO_LE_64(value);
173 value = TO_BE_16(value);
180 value = TO_BE_32(value);
187 value = TO_BE_64(value);
194 writeUint16LE((uint16)value);
200 writeUint32LE((uint32)value);
206 writeUint64LE((uint64)value);
212 writeUint16BE((uint16)value);
218 writeUint32BE((uint32)value);
224 writeUint64BE((uint64)value);
235 memcpy(&n, &value, 4);
248 memcpy(&n, &value, 4);
260 memcpy(&n, &value, 8);
273 memcpy(&n, &value, 8);
284 uint32 writeStream(
ReadStream *stream, uint32 dataSize);
297 void writeString(
const String &str);
323 virtual bool seek(int32 offset,
int whence = SEEK_SET) = 0;
332 virtual int32 size()
const = 0;
353 virtual bool eos()
const = 0;
370 virtual uint32 read(
void *dataPtr, uint32 dataSize) = 0;
401 return (int8)readByte();
415 return FROM_LE_16(val);
429 return FROM_LE_32(val);
443 return FROM_LE_64(val);
457 return FROM_BE_16(val);
471 return FROM_BE_32(val);
485 return FROM_BE_64(val);
497 return (int16)readUint16LE();
509 return (int32)readUint32LE();
521 return (int64)readUint64LE();
533 return (int16)readUint16BE();
545 return (int32)readUint32BE();
557 return (int64)readUint64BE();
569 uint32 n = readUint32LE();
586 uint32 n = readUint32BE();
604 uint64 n = readUint64LE();
621 uint64 n = readUint64BE();
646 Common::String readPascalString(
bool transformCR =
true);
663 virtual int32 pos()
const = 0;
671 virtual int32 size()
const = 0;
690 virtual bool seek(int32 offset,
int whence = SEEK_SET) = 0;
703 virtual bool skip(uint32 offset) {
return seek(offset, SEEK_CUR); }
731 virtual char *readLine(
char *s,
size_t bufSize,
bool handleCR =
true);
747 virtual String readLine(
bool handleCR =
true);
757 void hexdump(
int len,
int bytesPerLine = 16,
int startOffset = 0);
766 const bool _bigEndian;
779 bool isBE()
const {
return _bigEndian; }
787 return (_bigEndian) ? TO_BE_16(val) : TO_LE_16(val);
796 return (_bigEndian) ? TO_BE_32(val) : TO_LE_32(val);
805 return (_bigEndian) ? TO_BE_64(val) : TO_LE_64(val);
812 return (int16)readUint16();
819 return (int32)readUint32();
826 return (int64)readUint64();
uint16 readUint16LE()
Definition: stream.h:412
virtual bool err() const
Definition: stream.h:60
void writeUint32LE(uint32 value)
Definition: stream.h:158
FORCEINLINE int32 readSint32LE()
Definition: stream.h:508
FORCEINLINE float readFloatBE()
Definition: stream.h:585
uint32 readUint32LE()
Definition: stream.h:426
virtual void clearErr()
Definition: stream.h:70
FORCEINLINE void writeSint64LE(int64 value)
Definition: stream.h:205
void writeUint16BE(uint16 value)
Definition: stream.h:172
void writeUint32BE(uint32 value)
Definition: stream.h:179
FORCEINLINE void writeSint16BE(int16 value)
Definition: stream.h:211
uint64 readUint64LE()
Definition: stream.h:440
bool isBE() const
Definition: stream.h:779
FORCEINLINE double readDoubleBE()
Definition: stream.h:620
ReadStreamEndian(bool bigEndian)
Definition: stream.h:775
virtual bool flush()
Definition: stream.h:102
FORCEINLINE void writeSint64BE(int64 value)
Definition: stream.h:223
FORCEINLINE int16 readSint16()
Definition: stream.h:811
byte readByte()
Definition: stream.h:387
uint64 readUint64BE()
Definition: stream.h:482
uint32 readUint32()
Definition: stream.h:793
FORCEINLINE int16 readSint16BE()
Definition: stream.h:532
FORCEINLINE void writeSint32BE(int32 value)
Definition: stream.h:217
FORCEINLINE int64 readSint64LE()
Definition: stream.h:520
void writeUint16LE(uint16 value)
Definition: stream.h:151
FORCEINLINE void writeFloatLE(float value)
Definition: stream.h:232
uint16 readUint16()
Definition: stream.h:784
FORCEINLINE void writeDoubleBE(double value)
Definition: stream.h:270
FORCEINLINE double readDoubleLE()
Definition: stream.h:603
FORCEINLINE int64 readSint64BE()
Definition: stream.h:556
FORCEINLINE float readFloatLE()
Definition: stream.h:568
FORCEINLINE void writeFloatBE(float value)
Definition: stream.h:245
FORCEINLINE int16 readSint16LE()
Definition: stream.h:496
FORCEINLINE void writeDoubleLE(double value)
Definition: stream.h:257
FORCEINLINE int32 readSint32BE()
Definition: stream.h:544
uint32 readUint32BE()
Definition: stream.h:468
FORCEINLINE void writeSint16LE(int16 value)
Definition: stream.h:193
FORCEINLINE int8 readSByte()
Definition: stream.h:400
uint16 readUint16BE()
Definition: stream.h:454
FORCEINLINE int64 readSint64()
Definition: stream.h:825
void writeSByte(int8 value)
Definition: stream.h:145
SeekableReadStreamEndian(bool bigEndian)
Definition: stream.h:842
virtual void finalize()
Definition: stream.h:117
FORCEINLINE void writeSint32LE(int32 value)
Definition: stream.h:199
FORCEINLINE int32 readSint32()
Definition: stream.h:818
uint64 readUint64()
Definition: stream.h:802
void writeUint64BE(uint64 value)
Definition: stream.h:186
void writeUint64LE(uint64 value)
Definition: stream.h:165
virtual bool skip(uint32 offset)
Definition: stream.h:703
void writeByte(byte value)
Definition: stream.h:139