aboutsummaryrefslogtreecommitdiff
path: root/core/src/Utils/IO/FileStream.hpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2022-03-15 22:29:53 -0700
committerrtk0c <[email protected]>2022-03-15 22:29:53 -0700
commitee450783622008698647010540d9b9a9d55cb323 (patch)
tree67088fa2da506a5229fea47b6a812d38b18304a0 /core/src/Utils/IO/FileStream.hpp
parent9dcdcf68f6a60741cbdd287e7eda23b4a21a080e (diff)
Temporarily switch to cstdio instead of custom FileStream implementation
Diffstat (limited to 'core/src/Utils/IO/FileStream.hpp')
-rw-r--r--core/src/Utils/IO/FileStream.hpp23
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);