aboutsummaryrefslogtreecommitdiff
path: root/zenstore/include
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-03-15 17:41:19 +0100
committerDan Engelbrecht <[email protected]>2022-03-31 11:28:32 +0200
commitce3ea816c2609ed4e5afc53aa47b3de7c9ab2bad (patch)
tree48247aaf9b0accfca5efbda98435ac42d7db8570 /zenstore/include
parentDelete GCd blocks on close. (diff)
downloadzen-ce3ea816c2609ed4e5afc53aa47b3de7c9ab2bad.tar.xz
zen-ce3ea816c2609ed4e5afc53aa47b3de7c9ab2bad.zip
Manage lifetime of FileHandle
Diffstat (limited to 'zenstore/include')
-rw-r--r--zenstore/include/zenstore/basicfile.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/zenstore/include/zenstore/basicfile.h b/zenstore/include/zenstore/basicfile.h
index 2df016c76..9ee4ee512 100644
--- a/zenstore/include/zenstore/basicfile.h
+++ b/zenstore/include/zenstore/basicfile.h
@@ -43,10 +43,17 @@ public:
void Write(const void* Data, uint64_t Size, uint64_t FileOffset, std::error_code& Ec);
void Flush();
uint64_t FileSize();
+ void SetFileSize(uint64_t FileSize);
IoBuffer ReadAll();
void WriteAll(IoBuffer Data, std::error_code& Ec);
inline void* Handle() { return m_FileHandle; }
+ inline void* Detach()
+ {
+ void* FileHandle = m_FileHandle;
+ m_FileHandle = 0;
+ return FileHandle;
+ }
protected:
void* m_FileHandle = nullptr; // This is either null or valid