5#include "Containers/Array.h"
6#include "Containers/Map.h"
11#include "Misc/Optional.h"
109 struct FPerSourceBundleCacheInfo
111 uint64 FullInstallSize = 0;
112 uint64 InstallOverheadSize = 0;
113 uint64 CurrentInstallSize = 0;
115 double AgeScalar = 1.0;
118 enum class ECacheState :
uint8
125 struct FBundleCacheInfo
127 uint64 FullInstallSize = 0;
128 uint64 InstallOverheadSize = 0;
129 uint64 CurrentInstallSize = 0;
131 double AgeScalar = 1.0;
132 ECacheState
State = ECacheState::Released;
133 int32 HintReqeustedCount = 0;
135 bool IsHintRequested()
const {
return HintReqeustedCount > 0; }
139 if (State == ECacheState::Released)
140 return CurrentInstallSize;
144 if (State == ECacheState::PendingEvict)
147 if (CurrentInstallSize > FullInstallSize)
148 return CurrentInstallSize + InstallOverheadSize;
150 return FullInstallSize + InstallOverheadSize;
154 struct FCacheSortPredicate
156 bool operator()(
const FBundleCacheInfo&
A,
const FBundleCacheInfo&
B)
const
158 if (
A.IsHintRequested() ==
B.IsHintRequested())
163 return AgeA *
A.AgeScalar >
AgeB *
B.AgeScalar;
166 return !
A.IsHintRequested() &&
B.IsHintRequested();
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EInstallBundleCacheReserveResult
Definition InstallBundleCache.h:35
EInstallBundleCacheStatsFlags
Definition InstallBundleTypes.h:488
void Init()
Definition LockFreeList.h:4
Definition InstallBundleCache.h:54
INSTALLBUNDLEMANAGER_API bool SetPendingEvict(FName BundleName)
Definition InstallBundleCache.cpp:302
INSTALLBUNDLEMANAGER_API uint64 GetSize() const
Definition InstallBundleCache.cpp:91
INSTALLBUNDLEMANAGER_API bool Contains(FName BundleName) const
Definition InstallBundleCache.cpp:251
INSTALLBUNDLEMANAGER_API FInstallBundleCacheStats GetStats(EInstallBundleCacheStatsFlags Flags=EInstallBundleCacheStatsFlags::None, bool bVerbose=false) const
Definition InstallBundleCache.cpp:395
virtual INSTALLBUNDLEMANAGER_API ~FInstallBundleCache()
Definition InstallBundleCache.cpp:9
INSTALLBUNDLEMANAGER_API FInstallBundleCacheReserveResult Reserve(FName BundleName)
Definition InstallBundleCache.cpp:125
INSTALLBUNDLEMANAGER_API uint64 GetUsedSize() const
Definition InstallBundleCache.cpp:96
INSTALLBUNDLEMANAGER_API bool IsReserved(FName BundleName) const
Definition InstallBundleCache.cpp:267
FName GetName() const
Definition InstallBundleCache.h:60
INSTALLBUNDLEMANAGER_API uint64 GetFreeSpace() const
Definition InstallBundleCache.cpp:117
INSTALLBUNDLEMANAGER_API void AddOrUpdateBundle(FInstallBundleSourceType Source, const FInstallBundleCacheBundleInfo &AddInfo)
Definition InstallBundleCache.cpp:19
INSTALLBUNDLEMANAGER_API void RemoveBundle(FInstallBundleSourceType Source, FName BundleName)
Definition InstallBundleCache.cpp:35
INSTALLBUNDLEMANAGER_API bool ClearPendingEvict(FName BundleName)
Definition InstallBundleCache.cpp:326
INSTALLBUNDLEMANAGER_API void HintRequested(FName BundleName, bool bRequested)
Definition InstallBundleCache.cpp:350
INSTALLBUNDLEMANAGER_API TOptional< FInstallBundleCacheBundleInfo > GetBundleInfo(FName BundleName) const
Definition InstallBundleCache.cpp:50
Definition InstallBundleTypes.h:47
Definition NameTypes.h:617
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
@ TimeStamp
Definition AutomationAnalyticParams.h:23
@ Reserved
Definition MemPro.h:148
State
Definition PacketHandler.h:88
static CORE_API FDateTime UtcNow()
Definition DateTime.cpp:980
static FDateTime MinValue()
Definition DateTime.h:668
Definition InstallBundleCache.h:25
uint64 FullInstallSize
Definition InstallBundleCache.h:27
double AgeScalar
Definition InstallBundleCache.h:31
uint64 CurrentInstallSize
Definition InstallBundleCache.h:29
FName BundleName
Definition InstallBundleCache.h:26
FDateTime TimeStamp
Definition InstallBundleCache.h:30
uint64 InstallOverheadSize
Definition InstallBundleCache.h:28
Definition InstallBundleCache.h:49
TMap< FName, TArray< FInstallBundleSourceType > > BundlesToEvict
Definition InstallBundleCache.h:50
Definition InstallBundleCache.h:19
uint64 Size
Definition InstallBundleCache.h:21
FName CacheName
Definition InstallBundleCache.h:20
Definition InstallBundleCache.h:43
EInstallBundleCacheReserveResult Result
Definition InstallBundleCache.h:45
TMap< FName, TArray< FInstallBundleSourceType > > BundlesToEvict
Definition InstallBundleCache.h:44
Definition InstallBundleTypes.h:477
Definition Optional.h:131