5#include "Algo/BinarySearch.h"
31class FOnDemandDebugCommands;
32class FOnDemandContentInstaller;
33class FOnDemandHttpThread;
34struct FOnDemandEndpointConfig;
71static_assert(
sizeof(FOnDemandChunkEntry) == 40);
148 if (OutIndex !=
nullptr)
163 if (Refs.ContentHandleId == ContentHandleId)
191 if (Refs.Indices[ChunkEntryIndex])
212 <<
"/" << HashString.ToView().Left(2)
226 : SharedContainer(
Other.SharedContainer)
281 return SharedContainer->BlockHashes.IsEmpty()
288 return SharedContainer->HostGroup;
305 HashString <<
Hash();
309 <<
"/" << HashString.ToView().Left(2)
337 double DurationInSeconds = 0.0;
353#if !UE_BUILD_SHIPPING
393 FIoStatus GetContainersAndPackagesForInstall(
400 void TryEnterTickLoop();
406 void OnHostGroupRegistered(
const FName& HostGroup);
407 static void CreateContainersFromToc(
415#if !UE_BUILD_SHIPPING
437 bool bTicking =
false;
438 bool bTickRequested =
false;
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
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
Definition IDelegateInstance.h:14
Definition IoChunkId.h:64
Definition IoContainerId.h:18
Definition NameTypes.h:617
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
TBitArray & CombineWithBitwiseOR(const TBitArray< OtherAllocator > &InOther, EBitwiseOperatorFlags InFlags)
Definition BitArray.h:1337
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 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
static constexpr int32 KeySize
Definition AES.h:28
static constexpr uint32 AESBlockSize
Definition AES.h:21
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
Definition OnDemandIoStore.h:91
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:233
Definition IoStoreOnDemand.h:174
Definition IoStoreOnDemand.h:193
Definition IoStoreOnDemand.h:370
Definition IoStoreOnDemand.h:120
Definition IoStoreOnDemand.h:133
Definition OnDemandToc.h:178
Definition IoStoreOnDemandInternals.h:19