UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IasCache.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "IO/IoStatus.h"
7#include "Memory/MemoryFwd.h"
8#include "Tasks/Task.h"
10
11class FIoBuffer;
12class FIoReadOptions;
13struct FIoHash;
14
15#define UE_ALLOW_DROP_CACHE !UE_BUILD_SHIPPING
16
17namespace UE::IoStore
18{
19
22{
23public:
24 virtual ~IIasCache() = default;
25
30 virtual void Abandon() = 0;
31
33 virtual void Drop() = 0;
34
36 virtual bool ContainsChunk(const FIoHash& Key) const = 0;
37
41 virtual EIoErrorCode Get(const FIoHash& Key, FIoBuffer& OutData) = 0;
42
47 virtual void Materialize(const FIoHash& Key, FIoBuffer& Dest, EIoErrorCode& Status, UE::Tasks::FTaskEvent DoneEvent) = 0;
48
52 virtual void Cancel(FIoBuffer& GivenDest) = 0;
53
55 virtual FIoStatus Put(const FIoHash& Key, FIoBuffer& Data) = 0;
56
58 virtual FIoStatus Evict(const FIoHash& Key) = 0;
59};
60
62{
63 struct FRate
64 {
65 uint32 Allowance = 16 << 20;
66 uint32 Ops = 32;
68 };
69
70 struct FDemand
71 {
75 };
76
78 uint64 DiskQuota = 512ull << 20;
80 uint32 JournalQuota = 4 << 20; // description in JournalCache.cpp
81 uint32 JournalMagic = 0; // can be used to invalidate cache
84 bool DropCache = false;
85};
86
87TUniquePtr<IIasCache> MakeIasCache(const TCHAR* RootDir, const FIasCacheConfig& Config, class FDiskCacheGovernor& Governor);
88
89} // namespace UE::IoStore
#define TEXT(x)
Definition Platform.h:1272
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
EIoErrorCode
Definition IoStatus.h:19
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IoBuffer.h:15
Definition IoDispatcher.h:165
Definition IoStatus.h:60
Definition UniquePtr.h:107
Definition DiskCacheGovernor.h:13
Definition IasCache.h:22
virtual FIoStatus Put(const FIoHash &Key, FIoBuffer &Data)=0
virtual void Materialize(const FIoHash &Key, FIoBuffer &Dest, EIoErrorCode &Status, UE::Tasks::FTaskEvent DoneEvent)=0
virtual ~IIasCache()=default
virtual void Drop()=0
virtual EIoErrorCode Get(const FIoHash &Key, FIoBuffer &OutData)=0
virtual bool ContainsChunk(const FIoHash &Key) const =0
virtual void Abandon()=0
virtual void Cancel(FIoBuffer &GivenDest)=0
virtual FIoStatus Evict(const FIoHash &Key)=0
Definition Task.h:236
NO_LOGGING.
Definition Client.h:20
TUniquePtr< IIasCache > MakeIasCache(const TCHAR *RootDir, const FIasCacheConfig &Config, class FDiskCacheGovernor &Governor)
Definition JournaledCache.cpp:2363
Definition IoHash.h:33
uint8 Boost
Definition IasCache.h:73
uint8 SuperBoost
Definition IasCache.h:74
uint8 Threshold
Definition IasCache.h:72
Definition IasCache.h:64
uint32 Allowance
Definition IasCache.h:65
uint32 Ops
Definition IasCache.h:66
uint32 Seconds
Definition IasCache.h:67
Definition IasCache.h:62
FRate WriteRate
Definition IasCache.h:82
FStringView Name
Definition IasCache.h:77
uint32 MemoryQuota
Definition IasCache.h:79
uint32 JournalQuota
Definition IasCache.h:80
uint64 DiskQuota
Definition IasCache.h:78
FDemand Demand
Definition IasCache.h:83
uint32 JournalMagic
Definition IasCache.h:81
bool DropCache
Definition IasCache.h:84