UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CookOnTheFlyPackageStore.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
3
#pragma once
4
5
#include "
CoreMinimal.h
"
6
7
#if WITH_COTF
8
9
#include "
Serialization/PackageStore.h
"
10
#include "
CookOnTheFly.h
"
11
#include "
Misc/ScopeRWLock.h
"
12
13
class
FCookOnTheFlyPackageStoreBackend
final
14
:
public
IPackageStoreBackend
15
{
16
public
:
17
struct
FEntryInfo
18
{
19
EPackageStoreEntryStatus
Status =
EPackageStoreEntryStatus::None
;
20
int32
EntryIndex =
INDEX_NONE
;
21
};
22
23
struct
FPackageStats
24
{
25
TAtomic<uint32>
Cooked
{ 0 };
26
TAtomic<uint32>
Failed
{ 0 };
27
};
28
29
FCookOnTheFlyPackageStoreBackend
(
UE::Cook::ICookOnTheFlyServerConnection
&
InCookOnTheFlyServerConnection
);
30
31
virtual
void
OnMounted
(
TSharedRef<const FPackageStoreBackendContext>
InContext
)
override
32
{
33
Context
=
InContext
;
34
}
35
36
virtual
void
BeginRead
()
override
;
37
38
virtual
void
EndRead
()
override
;
39
44
bool
DoesPackageExist(
FPackageId
PackageId);
45
virtual
EPackageStoreEntryStatus
GetPackageStoreEntry
(
FPackageId
PackageId,
FName
PackageName,
46
FPackageStoreEntry
&
OutPackageStoreEntry
)
override
;
47
48
virtual
bool
GetPackageRedirectInfo
(
FPackageId
PackageId,
FName
&
OutSourcePackageName
,
FPackageId
&
OutRedirectedToPackageId
)
override
49
{
50
return
false
;
51
}
52
53
private
:
54
void
GetCookedPackagesFromServer
();
55
void
GetAllAvailablePackagesFromServer
();
56
void
SendCookRequest
(
TArray
<
TPair<FPackageId, FName>
> PackageIds);
57
EPackageStoreEntryStatus
CreatePackageStoreEntry
(
const
FEntryInfo&
EntryInfo
,
FPackageStoreEntry
&
OutPackageStoreEntry
);
58
void
AddPackages
(
TArray<FPackageStoreEntryResource>
Entries,
TArray<FPackageId>
FailedPackageIds
,
59
TArray
<
TPair<FPackageId, FName>
>
PackageIdsAndNames
);
60
void
AddOnDiskPackages
(
const
TArray<FPackageId>
& Packages);
61
void
OnCookOnTheFlyMessage(
const
UE::Cook::FCookOnTheFlyMessage
& Message);
62
void
CheckActivity
();
63
64
UE::Cook::ICookOnTheFlyServerConnection
& CookOnTheFlyServerConnection;
65
TSharedPtr<const FPackageStoreBackendContext>
Context
;
66
FRWLock
EntriesLock;
67
TMap<FPackageId, FEntryInfo>
PackageIdToEntryInfo
;
68
TChunkedArray<FPackageStoreEntryResource>
PackageEntries;
69
TArray<TPair<FPackageId, FName>
>
RequestedPackageIds
;
74
TSet<FPackageId>
AllServerOnDiskPackages
;
75
FPackageStats
PackageStats
;
76
77
const
double
MaxInactivityTime
= 20;
78
const
double
TimeBetweenWarning
= 10;
79
double
LastClientActivtyTime
= 0;
80
double
LastServerActivtyTime
= 0;
81
double
LastWarningTime
= 0;
82
};
83
84
#endif
// WITH_COTF
CookOnTheFly.h
CoreMinimal.h
INDEX_NONE
@ INDEX_NONE
Definition
CoreMiscDefines.h:150
int32
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition
Platform.h:1125
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
PackageStore.h
EPackageStoreEntryStatus
EPackageStoreEntryStatus
Definition
PackageStore.h:38
EPackageStoreEntryStatus::None
@ None
ScopeRWLock.h
EPlatformDataSerializationFlags::Cooked
@ Cooked
EVulkanSyncPointType::Context
@ Context
Failed
bool Failed
Definition
binka_ue_decode_test.cpp:18
FName
Definition
NameTypes.h:617
FPackageId
Definition
PackageId.h:19
IPackageStoreBackend
Definition
PackageStore.h:189
IPackageStoreBackend::OnMounted
virtual void OnMounted(TSharedRef< const FPackageStoreBackendContext > Context)=0
IPackageStoreBackend::GetPackageRedirectInfo
virtual bool GetPackageRedirectInfo(FPackageId PackageId, FName &OutSourcePackageName, FPackageId &OutRedirectedToPackageId)=0
IPackageStoreBackend::EndRead
virtual void EndRead()=0
IPackageStoreBackend::BeginRead
virtual void BeginRead()=0
IPackageStoreBackend::GetPackageStoreEntry
virtual EPackageStoreEntryStatus GetPackageStoreEntry(FPackageId PackageId, FName PackageName, FPackageStoreEntry &OutPackageStoreEntry)=0
TArray
Definition
Array.h:670
TAtomic
Definition
Atomic.h:538
TChunkedArray
Definition
ChunkedArray.h:56
TMap
Definition
UnrealString.h.inl:34
TSharedPtr
Definition
SharedPointer.h:692
TSharedRef
Definition
SharedPointer.h:153
UE::Cook::FCookOnTheFlyMessage
Definition
CookOnTheFly.h:140
UE::Cook::ICookOnTheFlyServerConnection
Definition
CookOnTheFly.h:302
UE::FPlatformRWLock
Definition
CriticalSection.h:14
FPackageStoreEntry
Definition
PackageStore.h:50
TTuple
Definition
Tuple.h:652
Engine
Source
Runtime
StorageServerClient
Private
CookOnTheFlyPackageStore.h
Generated by
1.9.8