UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::IoStore::FCas Struct Reference

Public Types

using FLookup = TMap< FCasAddr, FCasLocation >
 
using FReadHandles = TMap< FCasBlockId, FWeakAsyncFileHandle >
 
using FLastAccess = TMap< FCasBlockId, int64 >
 
using FBlockIdHandleCounts = TMap< FCasBlockId, int32 >
 

Public Member Functions

 FCas (const FOnDemandInstallCacheConfig &Config)
 
void Lock ()
 
void Unlock ()
 
FResult Initialize (FStringView Directory, bool bDeleteExisting=false)
 
FCasLocation FindChunk (const FIoHash &Hash) const
 
FCasBlockId CreateBlock ()
 
FResult DeleteBlock (FCasBlockId BlockId, TArray< FCasAddr > &OutAddrs)
 
FString GetBlockFilename (FCasBlockId BlockId) const
 
TResult< FSharedFileHandleOpenRead (FCasBlockId BlockId)
 
FSharedFileOpenAsyncResult OpenAsyncRead (FCasBlockId BlockId)
 
void OnFileHandleDeleted (FCasBlockId BlockId)
 
TResult< FUniqueFileHandleOpenWrite (FCasBlockId BlockId, bool bAppend) const
 
bool TrackAccessIf (ECasTrackAccessType Type, FCasBlockId BlockId, int64 UtcTicks, bool bDirty)
 
bool TrackAccessIf (ECasTrackAccessType Type, FCasBlockId BlockId, bool bDirty)
 
bool UnlockedTrackAccessIf (ECasTrackAccessType Type, uint32 BlockIdHash, FCasBlockId BlockId, int64 UtcTicks, bool bDirty)
 
uint64 GetBlockInfo (FCasBlockInfoMap &OutBlockInfo)
 
void Compact ()
 
FResult Verify (TArray< FCasAddr > &OutAddrs)
 
void LoadSnapshot (FCasSnapshot &&Snapshot)
 
FLastAccess ConsumeLastAcccess ()
 
FCas::FLastAccess GetAndClearDirtyLastAccess ()
 
FString GetRootDirectory () const
 

Static Public Member Functions

static int64 GetTimestampForMissingLastAccess ()
 
static uint32 GetMaxBlockSize ()
 
static uint32 GetMinBlockSize ()
 

Public Attributes

FLookup Lookup
 
FBlockIdHandleCounts BlockIds
 

Static Public Attributes

static constexpr uint32 DeleteBlockMaxWaitTimeMs = 10000
 
static constexpr int64 DirtyTimestampMask = std::numeric_limits<int64>::lowest()
 

Member Typedef Documentation

◆ FBlockIdHandleCounts

◆ FLastAccess

◆ FLookup

◆ FReadHandles

Constructor & Destructor Documentation

◆ FCas()

UE::IoStore::FCas::FCas ( const FOnDemandInstallCacheConfig Config)

Member Function Documentation

◆ Compact()

void UE::IoStore::FCas::Compact ( )

◆ ConsumeLastAcccess()

FLastAccess UE::IoStore::FCas::ConsumeLastAcccess ( )
inline

◆ CreateBlock()

FCasBlockId UE::IoStore::FCas::CreateBlock ( )

◆ DeleteBlock()

FResult UE::IoStore::FCas::DeleteBlock ( FCasBlockId  BlockId,
TArray< FCasAddr > &  OutAddrs 
)

◆ FindChunk()

FCasLocation UE::IoStore::FCas::FindChunk ( const FIoHash Hash) const

◆ GetAndClearDirtyLastAccess()

FCas::FLastAccess UE::IoStore::FCas::GetAndClearDirtyLastAccess ( )

◆ GetBlockFilename()

FString UE::IoStore::FCas::GetBlockFilename ( FCasBlockId  BlockId) const

◆ GetBlockInfo()

uint64 UE::IoStore::FCas::GetBlockInfo ( FCasBlockInfoMap OutBlockInfo)

◆ GetMaxBlockSize()

static uint32 UE::IoStore::FCas::GetMaxBlockSize ( )
inlinestatic

◆ GetMinBlockSize()

static uint32 UE::IoStore::FCas::GetMinBlockSize ( )
inlinestatic

◆ GetRootDirectory()

FString UE::IoStore::FCas::GetRootDirectory ( ) const
inline

◆ GetTimestampForMissingLastAccess()

int64 UE::IoStore::FCas::GetTimestampForMissingLastAccess ( )
static

◆ Initialize()

FResult UE::IoStore::FCas::Initialize ( FStringView  Directory,
bool  bDeleteExisting = false 
)

◆ LoadSnapshot()

void UE::IoStore::FCas::LoadSnapshot ( FCasSnapshot &&  Snapshot)

◆ Lock()

void UE::IoStore::FCas::Lock ( )
inline

◆ OnFileHandleDeleted()

void UE::IoStore::FCas::OnFileHandleDeleted ( FCasBlockId  BlockId)

◆ OpenAsyncRead()

FSharedFileOpenAsyncResult UE::IoStore::FCas::OpenAsyncRead ( FCasBlockId  BlockId)

◆ OpenRead()

TResult< FSharedFileHandle > UE::IoStore::FCas::OpenRead ( FCasBlockId  BlockId)

◆ OpenWrite()

TResult< FUniqueFileHandle > UE::IoStore::FCas::OpenWrite ( FCasBlockId  BlockId,
bool  bAppend 
) const

◆ TrackAccessIf() [1/2]

bool UE::IoStore::FCas::TrackAccessIf ( ECasTrackAccessType  Type,
FCasBlockId  BlockId,
bool  bDirty 
)
inline

◆ TrackAccessIf() [2/2]

bool UE::IoStore::FCas::TrackAccessIf ( ECasTrackAccessType  Type,
FCasBlockId  BlockId,
int64  UtcTicks,
bool  bDirty 
)

◆ Unlock()

void UE::IoStore::FCas::Unlock ( )
inline

◆ UnlockedTrackAccessIf()

bool UE::IoStore::FCas::UnlockedTrackAccessIf ( ECasTrackAccessType  Type,
uint32  BlockIdHash,
FCasBlockId  BlockId,
int64  UtcTicks,
bool  bDirty 
)

◆ Verify()

FResult UE::IoStore::FCas::Verify ( TArray< FCasAddr > &  OutAddrs)

Member Data Documentation

◆ BlockIds

FBlockIdHandleCounts UE::IoStore::FCas::BlockIds

◆ DeleteBlockMaxWaitTimeMs

constexpr uint32 UE::IoStore::FCas::DeleteBlockMaxWaitTimeMs = 10000
staticconstexpr

◆ DirtyTimestampMask

constexpr int64 UE::IoStore::FCas::DirtyTimestampMask = std::numeric_limits<int64>::lowest()
staticconstexpr

◆ Lookup

FLookup UE::IoStore::FCas::Lookup

The documentation for this struct was generated from the following file: