UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CacheStorageMmap.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CacheStorage.h"
6
7#if !UE_BUILD_SHIPPING
8
10
11namespace StorageServer
12{
13 // Cache storage implemented via mmap-ing a file on platforms that support mmap
15 {
16 public:
17 FCacheStorageMmap(const TCHAR* FileNamePrefix, const uint64 FileSize);
18 virtual ~FCacheStorageMmap() override;
19
20 virtual void Flush() override;
21
22 virtual uint64 GetSize() const override {return TotalSize;}
23
24 virtual void Invalidate(const uint64 Offset, const uint64 Size) override;
25
26 virtual FIoBuffer Read(
27 const uint64 Offset,
28 const uint64 ReadSize,
30 ) override;
31
32 virtual void WriteAsync(
33 const uint64 Offset,
34 const void* Buffer,
35 const uint64 WriteSize
36 ) override;
37
38 private:
39 struct FBackingFile
40 {
43 uint8* MapPtr;
44 uint64 MapSize;
45
46 FBackingFile() = default;
47 FBackingFile(FBackingFile&&) = default;
48 FBackingFile(const FBackingFile&) = delete;
49 FBackingFile& operator=(const FBackingFile&) = delete;
50 ~FBackingFile()
51 {
52 // release region before file handle
53 FileRegion.Reset();
54 FileHandle.Reset();
55 MapPtr = nullptr;
56 MapSize = 0;
57 }
58 };
59
60 TArray<FBackingFile> BackingFiles;
61 uint64 TotalSize;
62
63 bool IsValidRange(const uint64 Offset, const uint64 Size) const
64 {
65 return Offset + Size <= TotalSize;
66 }
67 };
68}
69
70#endif
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition IoBuffer.h:15
Definition CacheStorageMmap.h:15
virtual uint64 GetSize() const override
Definition CacheStorageMmap.h:22
virtual void Flush() override
Definition CacheStorageMmap.cpp:69
virtual void WriteAsync(const uint64 Offset, const void *Buffer, const uint64 WriteSize) override
Definition CacheStorageMmap.cpp:117
virtual ~FCacheStorageMmap() override
Definition CacheStorageMmap.cpp:63
Definition CacheStorage.h:18
Definition Array.h:670
Definition UniquePtr.h:107
void Reset(T *InPtr=nullptr)
Definition UniquePtr.h:346
Definition CacheJournal.h:15
Definition Optional.h:131