summaryrefslogtreecommitdiff
path: root/core/include/fxcrt/fx_stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/include/fxcrt/fx_stream.h')
-rw-r--r--core/include/fxcrt/fx_stream.h82
1 files changed, 36 insertions, 46 deletions
diff --git a/core/include/fxcrt/fx_stream.h b/core/include/fxcrt/fx_stream.h
index 3260807940..a5599b04d0 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;
};