diff options
Diffstat (limited to 'core/src/Utils/IO/FileStream.hpp')
-rw-r--r-- | core/src/Utils/IO/FileStream.hpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/core/src/Utils/IO/FileStream.hpp b/core/src/Utils/IO/FileStream.hpp index 5b91632..453ddbe 100644 --- a/core/src/Utils/IO/FileStream.hpp +++ b/core/src/Utils/IO/FileStream.hpp @@ -5,6 +5,9 @@ #include <filesystem> #include <memory> +// TODO switch to custom when unit tests are ready and bugs are fixed +#define CPLT_FILESTREAM_USE_CSTDIO + struct IoResult { enum ErrorKind @@ -25,16 +28,20 @@ struct IoResult class InputFileStream { private: +#if defined(CPLT_FILESTREAM_USE_CSTDIO) + FILE* mFile; +#else alignas(void*) char mOsFileHandle[sizeof(void*)]; // mBuffer is always mReadInSize size std::unique_ptr<std::byte[]> mBuffer; - int mReadInSize; + int mReadInSize = 1024; int mFirstByteIdx = 0; int mAvailableBytes = 0; bool mEof = false; +#endif public: InputFileStream(const std::filesystem::path& path); @@ -42,8 +49,8 @@ public: InputFileStream(const InputFileStream&) = delete; InputFileStream& operator=(const InputFileStream&) = delete; - InputFileStream(InputFileStream&&) = default; - InputFileStream& operator=(InputFileStream&&) = default; + InputFileStream(InputFileStream&&); + InputFileStream& operator=(InputFileStream&&); int GetReadInSize() const; void SetReadInSize(int size); @@ -63,10 +70,14 @@ public: }; private: +#if defined(CPLT_FILESTREAM_USE_CSTDIO) + FILE* mFile; +#else alignas(void*) char mOsFileHandle[sizeof(void*)]; std::unique_ptr<std::byte[]> mBuffer; - int mMaxBufferSize; + int mMaxBufferSize = 1024; int mCurrentBufferSize = 0; +#endif public: OutputFileStream(const std::filesystem::path& path, WriteMode mode); @@ -74,8 +85,8 @@ public: OutputFileStream(const OutputFileStream&) = delete; OutputFileStream& operator=(const OutputFileStream&) = delete; - OutputFileStream(OutputFileStream&&) = default; - OutputFileStream& operator=(OutputFileStream&&) = default; + OutputFileStream(OutputFileStream&&); + OutputFileStream& operator=(OutputFileStream&&); int GetMaxBufferSize() const; void SetMaxBufferSize(int maxSize); |