diff options
| author | Dan Engelbrecht <[email protected]> | 2023-08-21 13:07:22 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-08-21 13:07:22 +0200 |
| commit | ca5b35dcbde3e2da484572c821c4899763b0e0f0 (patch) | |
| tree | 2d6d7a15f6c7900cf7f3c0fe4510086e4fa572a4 /src/zenutil/include | |
| parent | oplog mirror support (#367) (diff) | |
| download | zen-ca5b35dcbde3e2da484572c821c4899763b0e0f0.tar.xz zen-ca5b35dcbde3e2da484572c821c4899763b0e0f0.zip | |
buffered file reading for oplog (#366)
* add BasicFileBuffer for buffered read of BasicFile
* Use BasicFileBuffer when reading oplog
* changelog
Diffstat (limited to 'src/zenutil/include')
| -rw-r--r-- | src/zenutil/include/zenutil/basicfile.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/zenutil/include/zenutil/basicfile.h b/src/zenutil/include/zenutil/basicfile.h index 1c5a31c5c..5a27befd9 100644 --- a/src/zenutil/include/zenutil/basicfile.h +++ b/src/zenutil/include/zenutil/basicfile.h @@ -120,6 +120,29 @@ public: private: }; +/** Adds a layer of buffered reading to a BasicFile + +This class is not intended for concurrent access, it is not thread safe. + +*/ + +class BasicFileBuffer +{ +public: + BasicFileBuffer(BasicFile& Base, uint64_t BufferSize); + ~BasicFileBuffer(); + + void Read(void* Data, uint64_t Size, uint64_t FileOffset); + +private: + BasicFile& m_Base; + uint8_t* m_Buffer; + const uint64_t m_BufferSize; + uint64_t m_Size; + uint64_t m_BufferStart; + uint64_t m_BufferEnd; +}; + ZENCORE_API void basicfile_forcelink(); } // namespace zen |