UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
OnDemandIoStore.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Algo/BinarySearch.h"
6#include "Async/Async.h"
7#include "Async/Mutex.h"
10#include "DiskCacheGovernor.h"
11#include "IO/HttpIoDispatcher.h"
12#include "IO/IoBuffer.h"
13#include "IO/IoChunkEncoding.h"
14#include "IO/IoChunkId.h"
15#include "IO/IoHash.h"
17#include "IasHostGroup.h"
18#include "Misc/AES.h"
19#include "Misc/EnumClassFlags.h"
20
21#include <atomic>
22
23enum class EForkProcessRole : uint8;
24
27
28namespace UE::IoStore
29{
30
31class FOnDemandDebugCommands;
32class FOnDemandContentInstaller;
33class FOnDemandHttpThread;
34struct FOnDemandEndpointConfig;
35enum class ELogOnDemandCacheUsage : uint8;
36
41
44{
45 None = 0,
46 PendingEncryptionKey = (1 << 0),
47 Mounted = (1 << 1),
48 StreamOnDemand = (1 << 2),
49 InstallOnDemand = (1 << 3),
50 Encrypted = (1 << 4),
51 WithSoftReferences = (1 << 5),
52 PendingHostGroup = (1 << 6),
54};
56
71static_assert(sizeof(FOnDemandChunkEntry) == 40);
72
79
86
88
95
98{
99 FString UniqueName() const;
100 inline int32 FindChunkEntryIndex(const FIoChunkId& ChunkId) const;
101 inline const FOnDemandChunkEntry* FindChunkEntry(const FIoChunkId& ChunkId, int32* OutIndex = nullptr) const;
104 inline bool IsReferenced(int32 ChunkEntryIndex) const;
105 inline FAnsiString GetTestUrl();
106 bool HasAnyFlags(EOnDemandContainerFlags Contains) const { return EnumHasAnyFlags(Flags, Contains); }
107 bool HasAllFlags(EOnDemandContainerFlags Contains) const { return EnumHasAllFlags(Flags, Contains); }
108
113 FString Name;
114 FString MountId;
129};
130
132{
133 if (const int32 Index = Algo::LowerBound(ChunkIds, ChunkId); Index < ChunkIds.Num())
134 {
135 if (ChunkIds[Index] == ChunkId)
136 {
137 return Index;
138 }
139 }
140
141 return INDEX_NONE;
142}
143
145{
147 {
148 if (OutIndex != nullptr)
149 {
150 *OutIndex = Index;
151 }
152 return &ChunkEntries[Index];
153 }
154
155 return nullptr;
156}
157
159{
160 const UPTRINT ContentHandleId = ContentHandle.HandleId();
162 {
163 if (Refs.ContentHandleId == ContentHandleId)
164 {
165 return Refs;
166 }
167 }
168
170 NewRef.ContentHandleId = ContentHandleId;
171 NewRef.Indices.SetNum(ChunkEntries.Num(), false);
172 return NewRef;
173}
174
176{
177 TBitArray<> Indices;
179 {
180 check(Refs.Indices.Num() == ChunkEntries.Num());
182 }
183
184 return Indices;
185}
186
187bool FOnDemandContainer::IsReferenced(int32 ChunkEntryIndex) const
188{
190 {
191 if (Refs.Indices[ChunkEntryIndex])
192 {
193 return true;
194 }
195 }
196
197 return false;
198}
199
201{
202 if (ChunkEntries.IsEmpty())
203 {
204 return FAnsiString();
205 }
206
207 TAnsiStringBuilder<41> HashString;
208 HashString << ChunkEntries[0].Hash;
209
211 Url << "/" << ChunksDirectory
212 << "/" << HashString.ToView().Left(2)
213 << "/" << HashString << ANSITEXTVIEW(".iochunk");
214
215 return Url.ToString();
216}
217
220{
224
226 : SharedContainer(Other.SharedContainer)
227 , Entry(Other.Entry)
228 {
229
230 }
231
233 : SharedContainer(MoveTemp(Other.SharedContainer))
234 , Entry(Other.Entry)
235 {
236
237 }
238
239
240 const FIoHash& Hash() const { return Entry.Hash; }
241 uint32 RawSize() const { return Entry.RawSize; }
242 uint32 EncodedSize() const { return Entry.EncodedSize; }
243 uint32 BlockSize() const { return SharedContainer->BlockSize; }
244 FName CompressionFormat() const { return SharedContainer->CompressionFormats[Entry.CompressionFormatIndex]; }
245 FMemoryView EncryptionKey() const { return FMemoryView(SharedContainer->EncryptionKey.Key, FAES::FAESKey::KeySize); }
246 inline TConstArrayView<uint32> Blocks() const;
248 FAnsiStringView ChunksDirectory() const { return SharedContainer->ChunksDirectory; }
249 UE::FIoRelativeUrl RelativeUrl() const { return SharedContainer->RelativeUrl; }
250 const FOnDemandChunkEntry& ChunkEntry() const { return Entry; }
251 inline const FIASHostGroup& HostGroup() const;
252 FName HostGroupName() const { return SharedContainer->HostGroupName; }
253
254 bool IsValid() const { return SharedContainer.IsValid(); }
255 operator bool() const { return IsValid(); }
256
258
259 inline void GetUrl(FAnsiStringBuilderBase& Url) const;
260
261private:
262 friend class FOnDemandIoStore;
264
266 : SharedContainer(InContainer)
267 , Entry(InEntry)
268 { }
269
270 FSharedOnDemandContainer SharedContainer;
271 const FOnDemandChunkEntry& Entry;
272};
273
275{
276 return TConstArrayView<uint32>(SharedContainer->BlockSizes.GetData() + Entry.BlockOffset, Entry.BlockCount);
277}
278
280{
281 return SharedContainer->BlockHashes.IsEmpty()
283 : TConstArrayView<FIoBlockHash>(SharedContainer->BlockHashes.GetData() + Entry.BlockOffset, Entry.BlockCount);
284}
285
287{
288 return SharedContainer->HostGroup;
289}
290
292{
293 check(Container.IsValid());
294 if (const FOnDemandChunkEntry* Entry = Container->FindChunkEntry(ChunkId))
295 {
296 return FOnDemandChunkInfo(Container, *Entry);
297 }
298
299 return FOnDemandChunkInfo();
300}
301
303{
304 TAnsiStringBuilder<41> HashString;
305 HashString << Hash();
306
307 Url.Reset();
308 Url << "/" << ChunksDirectory()
309 << "/" << HashString.ToView().Left(2)
310 << "/" << HashString << ANSITEXTVIEW(".iochunk");
311}
312
314
324
327
330 : public TSharedFromThis<FOnDemandIoStore, ESPMode::ThreadSafe>
331 , public IOnDemandIoStore
332{
333 struct FMountRequest
334 {
336 FOnDemandMountCompleted OnCompleted;
337 double DurationInSeconds = 0.0;
338 };
339
341
342public:
344
347
349
352
353#if !UE_BUILD_SHIPPING
356#endif
360 void AddReference(const FSharedOnDemandContainer& Container, int32 EntryIndex, FOnDemandContentHandle ContentHandle);
361
362 // IOnDemandIoStore interface
363 virtual FIoStatus Initialize() override;
364 virtual FIoStatus InitializePostHotfix() override;
366 virtual void Mount(FOnDemandMountArgs&& Args, FOnDemandMountCompleted&& OnCompleted) override;
368 FOnDemandInstallCompleted&& OnCompleted,
369 FOnDemandInstallProgressed&& OnProgress = nullptr) override;
370 virtual void Purge(FOnDemandPurgeArgs&& Args, FOnDemandPurgeCompleted&& OnCompleted) override;
371 virtual void Defrag(FOnDemandDefragArgs&& Args, FOnDemandDefragCompleted&& OnCompleted) override;
372 virtual void Verify(FOnDemandVerifyCacheCompleted&& OnCompleted) override;
373 virtual FIoStatus Unmount(FStringView MountId) override;
376 virtual FOnDemandCacheUsage GetCacheUsage(const FOnDemandGetCacheUsageArgs& Args) const override;
377 virtual void DumpMountedContainersToLog() const override;
378 virtual bool IsOnDemandStreamingEnabled() const override;
379 virtual void SetStreamingOptions(EOnDemandStreamingOptions Options) override;
382 virtual void OnImmediateAnalytic(FOnDemandImmediateAnalyticHandler EventHandler) override;
383 virtual void CancelInstallRequest(FSharedInternalInstallRequest InstallRequest) override;
385 virtual void ReleaseContent(FOnDemandInternalContentHandle& ContentHandle) override;
386
389
390private:
392
393 FIoStatus GetContainersAndPackagesForInstall(
394 FStringView MountId,
396 const TArray<FPackageId>& PackageIds,
399 FIoStatus InitializeInstallCache();
400 void TryEnterTickLoop();
401 void TickLoop();
402 bool Tick();
403 FIoStatus TickMountRequest(FMountRequest& MountRequest);
404 void CompleteMountRequest(FMountRequest& MountRequest, FOnDemandMountResult&& MountResult);
405 void OnEncryptionKeyAdded(const FGuid& Id, const FAES::FAESKey& Key);
406 void OnHostGroupRegistered(const FName& HostGroup);
407 static void CreateContainersFromToc(
408 FStringView MountId,
409 FStringView TocPath,
410 FOnDemandToc& Toc,
413 static FIoStatus SetupHostGroup(const FSharedOnDemandContainer& Container, const FOnDemandMountArgs& MountArgs);
414
415#if !UE_BUILD_SHIPPING
417#endif // !UE_BUILD_SHIPPING
418
421 FSharedInstallCache InstallCache;
422 FSharedPackageStoreBackend PackageStoreBackend;
423 FSharedStreamingBackend StreamingBackend;
424 FSharedHttpIoBackend HttpIoBackend;
425 FDiskCacheGovernor DiskCacheGovernor;
426
427 FDelegateHandle OnMountPakHandle;
428 FDelegateHandle OnServerPostForkHandle;
430 TMap<FString, FIoBuffer> PendingContainerHeaders;
431 mutable UE::FMutex ContainerMutex;
432
433 TArray<FSharedMountRequest> MountRequests;
434 UE::FMutex RequestMutex;
435
437 bool bTicking = false;
438 bool bTickRequested = false;
439 TFuture<void> TickFuture;
440};
441
442} // namespace UE::IoStore
443
447
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
constexpr T Align(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:18
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::UPTRINT UPTRINT
An unsigned integer the same size as a pointer.
Definition Platform.h:1146
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
EForkProcessRole
Definition Fork.h:22
const TCHAR * LexToString(EAnalyticsRecordEventMode Mode)
Definition IAnalyticsProvider.cpp:5
EIoErrorCode
Definition IoStatus.h:19
TMemoryView< const void > FMemoryView
Definition MemoryFwd.h:11
const bool
Definition NetworkReplayStreaming.h:178
#define ANSITEXTVIEW(str)
Definition StringView.h:555
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IDelegateInstance.h:14
Definition IoChunkId.h:64
Definition IoContainerId.h:18
Definition IoStatus.h:60
Definition NameTypes.h:617
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
Definition Array.h:670
TBitArray & CombineWithBitwiseOR(const TBitArray< OtherAllocator > &InOther, EBitwiseOperatorFlags InFlags)
Definition BitArray.h:1337
Definition Future.h:393
Definition IoStatus.h:101
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition SharedPointer.h:153
Definition StringBuilder.h:79
const CharType * ToString() UE_LIFETIMEBOUND
Definition StringBuilder.h:135
void Reset()
Definition StringBuilder.h:190
Definition StringBuilder.h:509
Definition UniquePtr.h:107
Definition HttpIoDispatcher.h:192
Definition Mutex.h:18
Definition DiskCacheGovernor.h:13
Definition IasHostGroup.h:17
Definition IoStoreOnDemand.h:88
Definition OnDemandContentInstaller.h:63
static UE_API FName DefaultName
Definition OnDemandHostGroup.h:50
Definition IoStoreOnDemand.h:329
Definition IoStoreOnDemandInternals.h:43
UPTRINT HandleId() const
Definition IoStoreOnDemandInternals.h:55
Definition OnDemandIoStore.h:332
void AddReference(const FSharedOnDemandContainer &Container, int32 EntryIndex, FOnDemandContentHandle ContentHandle)
Definition OnDemandIoStore.cpp:2077
void FlushLastAccess(FOnDemandFlushLastAccessCompleted &&OnCompleted)
Definition OnDemandIoStore.cpp:1847
~FOnDemandIoStore()
Definition OnDemandIoStore.cpp:206
virtual FIoStatus Initialize() override
Definition OnDemandIoStore.cpp:235
virtual FOnDemandInstallRequest Install(FOnDemandInstallArgs &&Args, FOnDemandInstallCompleted &&OnCompleted, FOnDemandInstallProgressed &&OnProgress=nullptr) override
Definition OnDemandIoStore.cpp:690
FIoStatus InitializeStreamingBackend(const FOnDemandEndpointConfig &EndpointConfig)
Definition OnDemandIoStore.cpp:551
virtual void UpdateInstallRequestPriority(FSharedInternalInstallRequest InstallRequest, int32 NewPriority) override
Definition OnDemandIoStore.cpp:2090
FOnDemandChunkInfo GetStreamingChunkInfo(const FIoChunkId &ChunkId)
Definition OnDemandIoStore.cpp:904
FOnDemandIoStore()
Definition OnDemandIoStore.cpp:197
virtual void DumpMountedContainersToLog() const override
Definition OnDemandIoStore.cpp:2163
virtual FIoStatus GetInstallSizesByMountId(const FOnDemandGetInstallSizeArgs &Args, TMap< FString, uint64 > &OutSizesByMountId) const override
Definition OnDemandIoStore.cpp:864
virtual void ReportAnalytics(TArray< FAnalyticsEventAttribute > &OutAnalyticsArray) const override
Definition OnDemandIoStore.cpp:2244
virtual void SetStreamingOptions(EOnDemandStreamingOptions Options) override
Definition OnDemandIoStore.cpp:2230
virtual FIoStatus InitializePostHotfix() override
Definition OnDemandIoStore.cpp:402
FOnDemandChunkInfo GetInstalledChunkInfo(const FIoChunkId &ChunkId, EIoErrorCode &OutErrorCode)
Definition OnDemandIoStore.cpp:926
void GetReferencedContentByHandle(TMap< FOnDemandWeakContentHandle, TArray< FOnDemandContainerChunkEntryReferences > > &OutReferencesByHandle) const
Definition OnDemandIoStore.cpp:2059
UE_NONCOPYABLE(FOnDemandIoStore)
virtual bool IsOnDemandStreamingEnabled() const override
Definition OnDemandIoStore.cpp:2225
virtual void OnImmediateAnalytic(FOnDemandImmediateAnalyticHandler EventHandler) override
Definition OnDemandIoStore.cpp:2272
virtual FOnDemandRegisterHostGroupResult RegisterHostGroup(FOnDemandRegisterHostGroupArgs &&Args) override
Definition OnDemandIoStore.cpp:597
virtual void ReleaseContent(FOnDemandInternalContentHandle &ContentHandle) override
Definition OnDemandIoStore.cpp:1956
virtual void Purge(FOnDemandPurgeArgs &&Args, FOnDemandPurgeCompleted &&OnCompleted) override
Definition OnDemandIoStore.cpp:705
TArray< FIoChunkId > DebugFindStreamingChunkIds(int32 NumToFind)
Definition OnDemandIoStore.cpp:958
virtual void CancelInstallRequest(FSharedInternalInstallRequest InstallRequest) override
Definition OnDemandIoStore.cpp:2084
virtual TIoStatusOr< FOnDemandInstallSizeResult > GetInstallSize(const FOnDemandGetInstallSizeArgs &Args) const override
Definition OnDemandIoStore.cpp:776
virtual TUniquePtr< IAnalyticsRecording > StartAnalyticsRecording() const override
Definition OnDemandIoStore.cpp:2262
TArray< FSharedOnDemandContainer > GetContainers(EOnDemandContainerFlags ContainerFlags=EOnDemandContainerFlags::None) const
Definition OnDemandIoStore.cpp:1829
virtual void Verify(FOnDemandVerifyCacheCompleted &&OnCompleted) override
Definition OnDemandIoStore.cpp:717
virtual FOnDemandCacheUsage GetCacheUsage(const FOnDemandGetCacheUsageArgs &Args) const override
Definition OnDemandIoStore.cpp:2095
void GetReferencedContent(TArray< FSharedOnDemandContainer > &OutContainers, TArray< TBitArray<> > &OutChunkEntryIndices, bool bPackageStore=false)
UE_BUILD_SHIPPING.
Definition OnDemandIoStore.cpp:2017
Definition IoStoreOnDemand.h:567
UE_REWRITE auto LowerBound(const RangeType &Range, const ValueType &Value, SortPredicateType SortPredicate) -> decltype(GetNum(Range))
Definition BinarySearch.h:92
NO_LOGGING.
Definition Client.h:20
EOnDemandStreamingOptions
Definition IoStoreOnDemand.h:557
EOnDemandContainerFlags
Definition OnDemandIoStore.h:44
FStringBuilderBase & operator<<(FStringBuilderBase &Builder, const FDerivedData &Data)
Definition DerivedData.cpp:255
U16 Index
Definition radfft.cpp:71
Definition AES.h:27
static constexpr int32 KeySize
Definition AES.h:28
static constexpr uint32 AESBlockSize
Definition AES.h:21
Definition Guid.h:109
Definition IoContainerHeader.h:110
Definition IoHash.h:33
Definition Optional.h:131
constexpr bool IsSet() const
Definition Optional.h:69
Definition IoStoreOnDemand.h:511
Definition OnDemandIoStore.h:82
UPTRINT ContentHandleId
Definition OnDemandIoStore.h:83
TBitArray Indices
Definition OnDemandIoStore.h:84
Definition OnDemandIoStore.h:59
uint32 GetDiskSize() const
Definition OnDemandIoStore.h:69
FIoHash Hash
Definition OnDemandIoStore.h:62
static const FOnDemandChunkEntry Null
Definition OnDemandIoStore.h:60
uint8 CompressionFormatIndex
Definition OnDemandIoStore.h:67
uint32 BlockCount
Definition OnDemandIoStore.h:66
uint32 BlockOffset
Definition OnDemandIoStore.h:65
uint32 RawSize
Definition OnDemandIoStore.h:63
uint32 EncodedSize
Definition OnDemandIoStore.h:64
Definition OnDemandIoStore.h:220
const FIASHostGroup & HostGroup() const
Definition OnDemandIoStore.h:286
const FIoHash & Hash() const
Definition OnDemandIoStore.h:240
UE::FIoRelativeUrl RelativeUrl() const
Definition OnDemandIoStore.h:249
void GetUrl(FAnsiStringBuilderBase &Url) const
Definition OnDemandIoStore.h:302
const FOnDemandChunkEntry & ChunkEntry() const
Definition OnDemandIoStore.h:250
uint32 EncodedSize() const
Definition OnDemandIoStore.h:242
FOnDemandChunkInfo(FOnDemandChunkInfo &&Other)
Definition OnDemandIoStore.h:232
uint32 RawSize() const
Definition OnDemandIoStore.h:241
TConstArrayView< uint32 > Blocks() const
Definition OnDemandIoStore.h:274
uint32 BlockSize() const
Definition OnDemandIoStore.h:243
TConstArrayView< FIoBlockHash > BlockHashes() const
Definition OnDemandIoStore.h:279
FAnsiStringView ChunksDirectory() const
Definition OnDemandIoStore.h:248
FOnDemandChunkInfo(const FOnDemandChunkInfo &Other)
Definition OnDemandIoStore.h:225
FName CompressionFormat() const
Definition OnDemandIoStore.h:244
FMemoryView EncryptionKey() const
Definition OnDemandIoStore.h:245
bool IsValid() const
Definition OnDemandIoStore.h:254
static FOnDemandChunkInfo Find(FSharedOnDemandContainer Container, const FIoChunkId &ChunkId)
Definition OnDemandIoStore.h:291
FOnDemandChunkInfo()
Definition OnDemandIoStore.h:221
FName HostGroupName() const
Definition OnDemandIoStore.h:252
FSharedOnDemandContainer Container
Definition OnDemandIoStore.h:92
TBitArray Indices
Definition OnDemandIoStore.h:93
Definition OnDemandIoStore.h:98
FAnsiString ChunksDirectory
Definition OnDemandIoStore.h:115
FAnsiString GetTestUrl()
Definition OnDemandIoStore.h:200
FSharedContainerHeader Header
Definition OnDemandIoStore.h:110
UE::FIoRelativeUrl RelativeUrl
Definition OnDemandIoStore.h:124
TArrayView< FOnDemandChunkEntry > ChunkEntries
Definition OnDemandIoStore.h:122
TArray< FOnDemandTagSet > TagSets
Definition OnDemandIoStore.h:119
TArray< FOnDemandChunkEntryReferences > ChunkEntryReferences
Definition OnDemandIoStore.h:123
const FOnDemandChunkEntry * FindChunkEntry(const FIoChunkId &ChunkId, int32 *OutIndex=nullptr) const
Definition OnDemandIoStore.h:144
TArray< uint32 > BlockSizes
Definition OnDemandIoStore.h:117
FIASHostGroup HostGroup
Definition OnDemandIoStore.h:111
FOnDemandChunkEntryReferences & FindOrAddChunkEntryReferences(const FOnDemandInternalContentHandle &ContentHandle)
Definition OnDemandIoStore.h:158
bool HasAnyFlags(EOnDemandContainerFlags Contains) const
Definition OnDemandIoStore.h:106
bool HasAllFlags(EOnDemandContainerFlags Contains) const
Definition OnDemandIoStore.h:107
FString UniqueName() const
Definition OnDemandIoStore.cpp:191
TBitArray GetReferencedChunkEntries() const
Definition OnDemandIoStore.h:175
TArray< FIoBlockHash > BlockHashes
Definition OnDemandIoStore.h:118
int32 FindChunkEntryIndex(const FIoChunkId &ChunkId) const
Definition OnDemandIoStore.h:131
TUniquePtr< uint8[]> ChunkEntryData
Definition OnDemandIoStore.h:120
FAES::FAESKey EncryptionKey
Definition OnDemandIoStore.h:109
uint32 BlockSize
Definition OnDemandIoStore.h:126
EOnDemandContainerFlags Flags
Definition OnDemandIoStore.h:128
bool IsReferenced(int32 ChunkEntryIndex) const
Definition OnDemandIoStore.h:187
TArray< FName > CompressionFormats
Definition OnDemandIoStore.h:116
TArrayView< FIoChunkId > ChunkIds
Definition OnDemandIoStore.h:121
FIoContainerId ContainerId
Definition OnDemandIoStore.h:125
FString MountId
Definition OnDemandIoStore.h:114
FName HostGroupName
Definition OnDemandIoStore.h:127
FString EncryptionKeyGuid
Definition OnDemandIoStore.h:112
FString Name
Definition OnDemandIoStore.h:113
Definition IoStoreOnDemand.h:403
Definition OnDemandIoDispatcherBackend.h:43
Definition OnDemandIoStore.h:316
TOptional< UE::UnifiedError::FError > Error
Definition OnDemandIoStore.h:322
double DurationInSeconds
Definition OnDemandIoStore.h:320
bool IsOk() const
Definition OnDemandIoStore.h:318
Definition IoStoreOnDemand.h:474
Definition IoStoreOnDemand.h:438
Definition IoStoreOnDemand.h:551
Definition IoStoreOnDemand.h:233
Definition IoStoreOnDemand.h:174
Definition IoStoreOnDemand.h:193
Definition IoStoreOnDemand.h:370
Definition IoStoreOnDemand.h:120
Definition IoStoreOnDemand.h:133
Definition OnDemandIoStore.h:75
TArray< uint32 > PackageIndicies
Definition OnDemandIoStore.h:77
FString Tag
Definition OnDemandIoStore.h:76
Definition OnDemandToc.h:178
Definition IoStoreOnDemandInternals.h:19