aboutsummaryrefslogtreecommitdiff
path: root/zenstore/basicfile.cpp
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/basicfile.cpp
parentDelete GCd blocks on close. (diff)
downloadzen-ce3ea816c2609ed4e5afc53aa47b3de7c9ab2bad.tar.xz
zen-ce3ea816c2609ed4e5afc53aa47b3de7c9ab2bad.zip
Manage lifetime of FileHandle
Diffstat (limited to 'zenstore/basicfile.cpp')
-rw-r--r--zenstore/basicfile.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/zenstore/basicfile.cpp b/zenstore/basicfile.cpp
index 895db6cee..1f6ead2d3 100644
--- a/zenstore/basicfile.cpp
+++ b/zenstore/basicfile.cpp
@@ -279,6 +279,20 @@ BasicFile::FileSize()
#endif
}
+void
+BasicFile::SetFileSize(uint64_t FileSize)
+{
+#if ZEN_PLATFORM_WINDOWS
+ LARGE_INTEGER liFileSize;
+ liFileSize.QuadPart = FileSize;
+ ::SetFilePointerEx(m_FileHandle, liFileSize, 0, FILE_BEGIN);
+ ::SetEndOfFile(m_FileHandle);
+#else
+ int Fd = int(intptr_t(m_FileHandle));
+ int ftruncate64(Fd, FileSize);
+#endif
+}
+
//////////////////////////////////////////////////////////////////////////
TemporaryFile::~TemporaryFile()