From ca5b35dcbde3e2da484572c821c4899763b0e0f0 Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Mon, 21 Aug 2023 13:07:22 +0200 Subject: buffered file reading for oplog (#366) * add BasicFileBuffer for buffered read of BasicFile * Use BasicFileBuffer when reading oplog * changelog --- src/zenutil/include/zenutil/basicfile.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/zenutil/include') 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 -- cgit v1.2.3