aboutsummaryrefslogtreecommitdiff
path: root/zenstore/include
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-09-19 23:17:44 +0200
committerStefan Boberg <[email protected]>2021-09-19 23:17:44 +0200
commitfe068c76e0f38dabf80bff2730ff9c713763d707 (patch)
tree03b0d149306691e8b69ecf322ead4290e9605ec7 /zenstore/include
parentChanged so Windows also uses the portable std::mutex implementation and rewor... (diff)
downloadzen-fe068c76e0f38dabf80bff2730ff9c713763d707.tar.xz
zen-fe068c76e0f38dabf80bff2730ff9c713763d707.zip
Added BasicFile::StreamFile helper function to support reading large files in a chunked fashion (will be using memory-mapped strategy in the future where it makes sense)
Diffstat (limited to 'zenstore/include')
-rw-r--r--zenstore/include/zenstore/basicfile.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/zenstore/include/zenstore/basicfile.h b/zenstore/include/zenstore/basicfile.h
index 0daa5d39f..a5874cfe4 100644
--- a/zenstore/include/zenstore/basicfile.h
+++ b/zenstore/include/zenstore/basicfile.h
@@ -8,6 +8,7 @@
#include <zencore/windows.h>
#include <filesystem>
+#include <functional>
namespace zen {
@@ -28,8 +29,9 @@ public:
void Open(std::filesystem::path FileName, bool IsCreate);
void Open(std::filesystem::path FileName, bool IsCreate, std::error_code& Ec);
void Close();
- void Read(void* Data, uint64_t Size, uint64_t Offset);
- void Write(const void* Data, uint64_t Size, uint64_t Offset);
+ void Read(void* Data, uint64_t Size, uint64_t FileOffset);
+ void StreamFile(std::function<void(const void* Data, uint64_t Size)>&& ChunkFun);
+ void Write(const void* Data, uint64_t Size, uint64_t FileOffset);
void Flush();
uint64_t FileSize();
void* Handle() { return m_FileHandle; }