| Index: core/include/fxcrt/fx_stream.h
|
| diff --git a/core/include/fxcrt/fx_stream.h b/core/include/fxcrt/fx_stream.h
|
| index 3260807940a7e922be16b2229873bca000ba8bd3..a5599b04d0730c0797e5a916188b7d150e4b03db 100644
|
| --- a/core/include/fxcrt/fx_stream.h
|
| +++ b/core/include/fxcrt/fx_stream.h
|
| @@ -62,76 +62,71 @@ class IFX_StreamWrite {
|
| virtual void Release() = 0;
|
| virtual FX_BOOL WriteBlock(const void* pData, size_t size) = 0;
|
| };
|
| +
|
| class IFX_FileWrite : public IFX_StreamWrite {
|
| public:
|
| - virtual void Release() = 0;
|
| + // IFX_StreamWrite:
|
| + FX_BOOL WriteBlock(const void* pData, size_t size) override {
|
| + return WriteBlock(pData, GetSize(), size);
|
| + }
|
|
|
| virtual FX_FILESIZE GetSize() = 0;
|
| -
|
| virtual FX_BOOL Flush() = 0;
|
| -
|
| virtual FX_BOOL WriteBlock(const void* pData,
|
| FX_FILESIZE offset,
|
| size_t size) = 0;
|
| - virtual FX_BOOL WriteBlock(const void* pData, size_t size) {
|
| - return WriteBlock(pData, GetSize(), size);
|
| - }
|
| };
|
| +
|
| class IFX_StreamRead {
|
| public:
|
| virtual ~IFX_StreamRead() {}
|
|
|
| virtual void Release() = 0;
|
| -
|
| virtual FX_BOOL IsEOF() = 0;
|
| -
|
| virtual FX_FILESIZE GetPosition() = 0;
|
| -
|
| virtual size_t ReadBlock(void* buffer, size_t size) = 0;
|
| };
|
| +
|
| class IFX_FileRead : IFX_StreamRead {
|
| public:
|
| - virtual void Release() = 0;
|
| -
|
| - virtual FX_FILESIZE GetSize() = 0;
|
| -
|
| - virtual FX_BOOL IsEOF() { return FALSE; }
|
| -
|
| - virtual FX_FILESIZE GetPosition() { return 0; }
|
| + // IFX_StreamRead:
|
| + void Release() override = 0;
|
| + FX_BOOL IsEOF() override { return FALSE; }
|
| + FX_FILESIZE GetPosition() override { return 0; }
|
| + size_t ReadBlock(void* buffer, size_t size) override { return 0; }
|
|
|
| virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) = 0;
|
| -
|
| - virtual size_t ReadBlock(void* buffer, size_t size) { return 0; }
|
| + virtual FX_FILESIZE GetSize() = 0;
|
| };
|
| +
|
| IFX_FileRead* FX_CreateFileRead(const FX_CHAR* filename);
|
| IFX_FileRead* FX_CreateFileRead(const FX_WCHAR* filename);
|
| +
|
| class IFX_FileStream : public IFX_FileRead, public IFX_FileWrite {
|
| public:
|
| virtual IFX_FileStream* Retain() = 0;
|
|
|
| - virtual void Release() = 0;
|
| -
|
| - virtual FX_FILESIZE GetSize() = 0;
|
| -
|
| - virtual FX_BOOL IsEOF() = 0;
|
| -
|
| - virtual FX_FILESIZE GetPosition() = 0;
|
| -
|
| - virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) = 0;
|
| -
|
| - virtual size_t ReadBlock(void* buffer, size_t size) = 0;
|
| -
|
| - virtual FX_BOOL WriteBlock(const void* buffer,
|
| - FX_FILESIZE offset,
|
| - size_t size) = 0;
|
| - virtual FX_BOOL WriteBlock(const void* buffer, size_t size) {
|
| + // IFX_FileRead:
|
| + void Release() override = 0;
|
| + FX_BOOL IsEOF() override = 0;
|
| + FX_FILESIZE GetPosition() override = 0;
|
| + size_t ReadBlock(void* buffer, size_t size) override = 0;
|
| + FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override = 0;
|
| + FX_FILESIZE GetSize() override = 0;
|
| +
|
| + // IFX_FileWrite:
|
| + FX_BOOL WriteBlock(const void* buffer,
|
| + FX_FILESIZE offset,
|
| + size_t size) override = 0;
|
| + FX_BOOL WriteBlock(const void* buffer, size_t size) override {
|
| return WriteBlock(buffer, GetSize(), size);
|
| }
|
| -
|
| - virtual FX_BOOL Flush() = 0;
|
| + FX_BOOL Flush() override = 0;
|
| };
|
| +
|
| IFX_FileStream* FX_CreateFileStream(const FX_CHAR* filename, FX_DWORD dwModes);
|
| IFX_FileStream* FX_CreateFileStream(const FX_WCHAR* filename, FX_DWORD dwModes);
|
| +
|
| class IFX_MemoryStream : public IFX_FileStream {
|
| public:
|
| virtual FX_BOOL IsConsecutive() const = 0;
|
| @@ -152,20 +147,15 @@ IFX_MemoryStream* FX_CreateMemoryStream(uint8_t* pBuffer,
|
| IFX_MemoryStream* FX_CreateMemoryStream(FX_BOOL bConsecutive = FALSE);
|
| class IFX_BufferRead : public IFX_StreamRead {
|
| public:
|
| - virtual void Release() = 0;
|
| -
|
| - virtual FX_BOOL IsEOF() = 0;
|
| -
|
| - virtual FX_FILESIZE GetPosition() = 0;
|
| -
|
| - virtual size_t ReadBlock(void* buffer, size_t size) = 0;
|
| + // IFX_StreamRead:
|
| + void Release() override = 0;
|
| + FX_BOOL IsEOF() override = 0;
|
| + FX_FILESIZE GetPosition() override = 0;
|
| + size_t ReadBlock(void* buffer, size_t size) override = 0;
|
|
|
| virtual FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) = 0;
|
| -
|
| virtual const uint8_t* GetBlockBuffer() = 0;
|
| -
|
| virtual size_t GetBlockSize() = 0;
|
| -
|
| virtual FX_FILESIZE GetBlockOffset() = 0;
|
| };
|
|
|
|
|