UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GenericPlatformChunkInstall.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4/*=============================================================================================
5 GenericPlatformChunkInstall.h: Generic platform chunk based install classes.
6==============================================================================================*/
7
8#pragma once
9
10#include "Containers/Array.h"
13#include "Templates/Function.h"
14#include "CoreTypes.h"
15#include "Delegates/Delegate.h"
16#include "HAL/PlatformCrt.h"
17#include "Logging/LogMacros.h"
19#include "UObject/NameTypes.h"
20
22
24
25#ifndef ENABLE_PLATFORM_CHUNK_INSTALL
26 #define ENABLE_PLATFORM_CHUNK_INSTALL (1)
27#endif
28
30{
31 enum Type
32 {
33 // note: higher quality locations should have higher enum values, we sort by these in AssetRegistry.cpp
34 DoesNotExist, // chunk does not exist
35 NotAvailable, // chunk has not been installed yet
36 LocalSlow, // chunk is on local slow media (optical)
37 LocalFast, // chunk is on local fast media (HDD)
38
40 };
41}
42
43
45{
46 enum Type
47 {
48 Paused, // chunk installation is paused
49 Slow, // installation is lower priority than Game IO
50 Fast // installation is higher priority than Game IO
51 };
52}
53
55{
56 enum Type
57 {
58 Immediate, // Chunk install is of highest priority, this can cancel lower priority installs.
59 High , // Chunk is probably required soon so grab is as soon as possible.
60 Low , // Install this chunk only when other chunks are not needed.
61 };
62}
63
65{
66 enum Type
67 {
68 ETA, // time remaining in seconds
69 PercentageComplete // percentage complete in 99.99 format
70 };
71}
72
80
90
95{
96public:
97 virtual bool HasManifest() const = 0;
98 virtual int32 GetChunkIDFromPakchunkIndex(int32 PakchunkIndex) const = 0;
99 virtual TArray<FString> GetPakFilesInChunk(int32 ChunkID) const = 0;
100};
101
102
106
110
112{
113 Invalid,
114 OnDemand,
115 Language,
116};
117
124
129{
130public:
131
134
139 virtual void AsyncInit( TFunction<void(bool/*bSuccess*/)> OnInitComplete ) = 0;
140
144 virtual bool IsAvailable() const = 0;
145
151 virtual EChunkLocation::Type GetPakchunkLocation( int32 PakchunkIndex) = 0;
152
159
167
179
186 virtual bool PrioritizePakchunk( int32 PakchunkIndex, EChunkPriority::Type Priority ) = 0;
187
193 virtual bool DebugStartNextChunk() = 0;
194
203
210
215 virtual void RemoveChunkInstallDelegate( FDelegateHandle Delegate ) = 0;
216
217
222 virtual bool SupportsNamedChunkInstall() const = 0;
223
229 virtual bool IsNamedChunkInProgress(const FName NamedChunk) = 0;
230
236 virtual bool InstallNamedChunk(const FName NamedChunk) = 0;
237
243 virtual bool UninstallNamedChunk(const FName NamedChunk) = 0;
244
251
258
264 virtual EChunkLocation::Type GetNamedChunkLocation(const FName NamedChunk) = 0;
265
273
280 virtual bool PrioritizeNamedChunk(const FName NamedChunk, EChunkPriority::Type Priority) = 0;
281
287 virtual ENamedChunkType GetNamedChunkType(const FName NamedChunk) const = 0;
288
295
302
308
309
310
314 virtual bool SupportsBundleSource() const = 0;
315
321 virtual bool SetAutoPakMountingEnabled( bool bEnabled ) = 0;
322
329 virtual bool GetPakFilesInNamedChunk( const FName NamedChunk, TArray<FString>& OutFilesInChunk) const = 0;
330
338
344 virtual bool IsNamedChunkForCurrentLocale( const FName NamedChunk ) const = 0;
345
346
347protected:
355
363
364};
365
371{
372public:
373 CORE_API virtual void AsyncInit( TFunction<void(bool/*bSuccess*/)> OnInitComplete ) override;
374
375 virtual bool IsAvailable() const
376 {
377 return true;
378 }
379
380 virtual EChunkLocation::Type GetPakchunkLocation( int32 PakchunkIndex ) override
381 {
382 return GetChunkLocation(PakchunkIndex);
383 }
384
386 {
387 return PrioritizeChunk(PakchunkIndex, Priority);
388 }
389
391 {
393 {
394 return true;
395 }
396
397 return false;
398 }
399
401 {
403 {
404 return 100.0f;
405 }
406 return 0.0f;
407 }
408
410 {
412 }
413
415 {
416 return false;
417 }
418
419 virtual bool PrioritizeChunk( uint32 ChunkID, EChunkPriority::Type Priority ) override
420 {
421 return false;
422 }
423
424 virtual bool DebugStartNextChunk() override
425 {
426 return true;
427 }
428
430 {
431 InstallDelegate.Broadcast(InChunkID, true);
432 }
433
435 {
436 return InstallDelegate.Add(Delegate);
437 }
438
439 virtual void RemoveChunkInstallDelegate(FDelegateHandle Delegate) override
440 {
441 InstallDelegate.Remove(Delegate);
442 }
443
444 virtual bool SupportsNamedChunkInstall() const override
445 {
446 return false;
447 }
448
449 virtual bool IsNamedChunkInProgress(const FName NamedChunk) override
450 {
451 return false;
452 }
453
454 virtual bool InstallNamedChunk(const FName NamedChunk) override
455 {
456 return InstallNamedChunks(MakeArrayView(&NamedChunk,1));
457 }
458
459 virtual bool UninstallNamedChunk(const FName NamedChunk) override
460 {
461 return UninstallNamedChunks(MakeArrayView(&NamedChunk,1));
462 }
463
465 {
466 return false;
467 }
468
470 {
471 return false;
472 }
473
474 virtual EChunkLocation::Type GetNamedChunkLocation(const FName NamedChunk) override
475 {
477 }
478
480 {
481 return 0.0f;
482 }
483
484 virtual bool PrioritizeNamedChunk(const FName NamedChunk, EChunkPriority::Type Priority) override
485 {
486 return false;
487 }
488
489 virtual ENamedChunkType GetNamedChunkType(const FName NamedChunk) const override
490 {
492 }
493
495 {
496 return TArray<FName>();
497 }
498
499 virtual void RemoveNamedChunkCompleteDelegate(FDelegateHandle Delegate) override
500 {
501 NamedChunkCompleteDelegate.Remove(Delegate);
502 }
503
508
509
510 virtual bool SupportsBundleSource() const override
511 {
512 return false;
513 }
514
515 virtual bool SetAutoPakMountingEnabled( bool bEnabled )
516 {
517 return false;
518 }
519
520 virtual bool GetPakFilesInNamedChunk( const FName NamedChunk, TArray<FString>& OutFilesInChunk) const override
521 {
522 return false;
523 }
524
526 {
527 return false;
528 }
529
530 virtual bool IsNamedChunkForCurrentLocale( const FName NamedChunk ) const
531 {
532 return true;
533 }
534
535protected:
536
537 CORE_API void DoNamedChunkCompleteCallbacks( const FName NamedChunk, EChunkLocation::Type Location, bool bHasSucceeded ) const;
538 CORE_API void DoNamedChunkCompleteCallbacks( const TArrayView<const FName>& NamedChunks, EChunkLocation::Type Location, bool bHasSucceeded ) const;
539
543
545 {
547 }
548};
549
550
551
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
ENamedChunkType
Definition GenericPlatformChunkInstall.h:112
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
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 GenericPlatformChunkInstall.h:371
virtual EChunkLocation::Type GetPakchunkLocation(int32 PakchunkIndex) override
Definition GenericPlatformChunkInstall.h:380
virtual bool IsAvailable() const
Definition GenericPlatformChunkInstall.h:375
virtual void RemoveChunkInstallDelegate(FDelegateHandle Delegate) override
Definition GenericPlatformChunkInstall.h:439
virtual float GetChunkProgress(uint32 ChunkID, EChunkProgressReportingType::Type ReportType) override
Definition GenericPlatformChunkInstall.h:400
virtual EChunkInstallSpeed::Type GetInstallSpeed() override
Definition GenericPlatformChunkInstall.h:409
virtual EChunkLocation::Type GetChunkLocation(uint32 ChunkID) override
Definition GenericPlatformChunkInstall.h:544
virtual bool GetPakFilesInNamedChunk(const FName NamedChunk, TArray< FString > &OutFilesInChunk) const override
Definition GenericPlatformChunkInstall.h:520
FPlatformChunkInstallMultiDelegate InstallDelegate
Definition GenericPlatformChunkInstall.h:541
virtual FDelegateHandle AddNamedChunkCompleteDelegate(FPlatformNamedChunkCompleteDelegate Delegate) override
Definition GenericPlatformChunkInstall.h:504
virtual void RemoveNamedChunkCompleteDelegate(FDelegateHandle Delegate) override
Definition GenericPlatformChunkInstall.h:499
virtual bool PrioritizePakchunk(int32 PakchunkIndex, EChunkPriority::Type Priority)
Definition GenericPlatformChunkInstall.h:385
virtual bool SupportsBundleSource() const override
Definition GenericPlatformChunkInstall.h:510
virtual bool GetNamedChunkInstallationStatus(const FName NamedChunk, FChunkInstallationStatusDetail &OutChunkStatusDetail) const override
Definition GenericPlatformChunkInstall.h:525
virtual bool GetProgressReportingTypeSupported(EChunkProgressReportingType::Type ReportType) override
Definition GenericPlatformChunkInstall.h:390
virtual bool PrioritizeNamedChunk(const FName NamedChunk, EChunkPriority::Type Priority) override
Definition GenericPlatformChunkInstall.h:484
virtual CORE_API void AsyncInit(TFunction< void(bool)> OnInitComplete) override
Definition GenericPlatformChunkInstall.cpp:8
FPlatformNamedChunkCompleteMultiDelegate NamedChunkCompleteDelegate
Definition GenericPlatformChunkInstall.h:542
virtual bool IsNamedChunkForCurrentLocale(const FName NamedChunk) const
Definition GenericPlatformChunkInstall.h:530
virtual FDelegateHandle AddChunkInstallDelegate(FPlatformChunkInstallDelegate Delegate) override
Definition GenericPlatformChunkInstall.h:434
virtual bool SetAutoPakMountingEnabled(bool bEnabled)
Definition GenericPlatformChunkInstall.h:515
virtual EChunkLocation::Type GetNamedChunkLocation(const FName NamedChunk) override
Definition GenericPlatformChunkInstall.h:474
virtual bool UninstallNamedChunks(const TArrayView< const FName > &NamedChunks) override
Definition GenericPlatformChunkInstall.h:469
virtual TArray< FName > GetNamedChunksByType(ENamedChunkType NamedChunkType) const override
Definition GenericPlatformChunkInstall.h:494
virtual float GetNamedChunkProgress(const FName NamedChunk, EChunkProgressReportingType::Type ReportType) override
Definition GenericPlatformChunkInstall.h:479
virtual void ExternalNotifyChunkAvailable(uint32 InChunkID) override
Definition GenericPlatformChunkInstall.h:429
virtual bool SetInstallSpeed(EChunkInstallSpeed::Type InstallSpeed) override
Definition GenericPlatformChunkInstall.h:414
virtual ENamedChunkType GetNamedChunkType(const FName NamedChunk) const override
Definition GenericPlatformChunkInstall.h:489
virtual bool PrioritizeChunk(uint32 ChunkID, EChunkPriority::Type Priority) override
Definition GenericPlatformChunkInstall.h:419
virtual bool UninstallNamedChunk(const FName NamedChunk) override
Definition GenericPlatformChunkInstall.h:459
CORE_API void DoNamedChunkCompleteCallbacks(const FName NamedChunk, EChunkLocation::Type Location, bool bHasSucceeded) const
Definition GenericPlatformChunkInstall.cpp:18
virtual bool IsNamedChunkInProgress(const FName NamedChunk) override
Definition GenericPlatformChunkInstall.h:449
virtual bool InstallNamedChunks(const TArrayView< const FName > &NamedChunks) override
Definition GenericPlatformChunkInstall.h:464
virtual bool InstallNamedChunk(const FName NamedChunk) override
Definition GenericPlatformChunkInstall.h:454
virtual bool DebugStartNextChunk() override
Definition GenericPlatformChunkInstall.h:424
virtual bool SupportsNamedChunkInstall() const override
Definition GenericPlatformChunkInstall.h:444
Definition NameTypes.h:617
Definition ModuleInterface.h:14
Definition GenericPlatformChunkInstall.h:95
virtual bool HasManifest() const =0
virtual int32 GetChunkIDFromPakchunkIndex(int32 PakchunkIndex) const =0
virtual TArray< FString > GetPakFilesInChunk(int32 ChunkID) const =0
Definition GenericPlatformChunkInstall.h:85
virtual IPlatformChunkInstall * GetPlatformChunkInstall()=0
Definition GenericPlatformChunkInstall.h:129
virtual bool DebugStartNextChunk()=0
virtual EChunkLocation::Type GetPakchunkLocation(int32 PakchunkIndex)=0
virtual void RemoveNamedChunkCompleteDelegate(FDelegateHandle Delegate)=0
virtual EChunkLocation::Type GetChunkLocation(uint32 ChunkID)=0
virtual float GetNamedChunkProgress(const FName NamedChunk, EChunkProgressReportingType::Type ReportType)=0
virtual float GetChunkProgress(uint32 ChunkID, EChunkProgressReportingType::Type ReportType)=0
virtual FDelegateHandle AddNamedChunkCompleteDelegate(FPlatformNamedChunkCompleteDelegate Delegate)=0
virtual bool PrioritizeNamedChunk(const FName NamedChunk, EChunkPriority::Type Priority)=0
virtual void ExternalNotifyChunkAvailable(uint32 InChunkID)=0
virtual bool IsNamedChunkForCurrentLocale(const FName NamedChunk) const =0
virtual bool IsAvailable() const =0
virtual bool GetPakFilesInNamedChunk(const FName NamedChunk, TArray< FString > &OutFilesInChunk) const =0
virtual void RemoveChunkInstallDelegate(FDelegateHandle Delegate)=0
virtual EChunkInstallSpeed::Type GetInstallSpeed()=0
virtual bool UninstallNamedChunk(const FName NamedChunk)=0
virtual ENamedChunkType GetNamedChunkType(const FName NamedChunk) const =0
virtual ~IPlatformChunkInstall()
Definition GenericPlatformChunkInstall.h:133
virtual bool PrioritizeChunk(uint32 ChunkID, EChunkPriority::Type Priority)=0
virtual void AsyncInit(TFunction< void(bool)> OnInitComplete)=0
virtual bool GetNamedChunkInstallationStatus(const FName NamedChunk, FChunkInstallationStatusDetail &OutChunkStatusDetail) const =0
virtual bool InstallNamedChunk(const FName NamedChunk)=0
virtual FDelegateHandle AddChunkInstallDelegate(FPlatformChunkInstallDelegate Delegate)=0
virtual bool GetProgressReportingTypeSupported(EChunkProgressReportingType::Type ReportType)=0
virtual bool SetInstallSpeed(EChunkInstallSpeed::Type InstallSpeed)=0
virtual TArray< FName > GetNamedChunksByType(ENamedChunkType NamedChunkType) const =0
virtual bool IsNamedChunkInProgress(const FName NamedChunk)=0
virtual bool SupportsBundleSource() const =0
virtual bool SupportsNamedChunkInstall() const =0
virtual EChunkLocation::Type GetNamedChunkLocation(const FName NamedChunk)=0
virtual bool InstallNamedChunks(const TArrayView< const FName > &NamedChunks)=0
virtual bool PrioritizePakchunk(int32 PakchunkIndex, EChunkPriority::Type Priority)=0
virtual bool SetAutoPakMountingEnabled(bool bEnabled)=0
virtual bool UninstallNamedChunks(const TArrayView< const FName > &NamedChunks)=0
Definition ArrayView.h:139
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition GenericPlatformChunkInstall.h:45
Type
Definition GenericPlatformChunkInstall.h:47
@ Fast
Definition GenericPlatformChunkInstall.h:50
@ Slow
Definition GenericPlatformChunkInstall.h:49
@ Paused
Definition GenericPlatformChunkInstall.h:48
Definition GenericPlatformChunkInstall.h:30
Type
Definition GenericPlatformChunkInstall.h:32
@ LocalFast
Definition GenericPlatformChunkInstall.h:37
@ BestLocation
Definition GenericPlatformChunkInstall.h:39
@ DoesNotExist
Definition GenericPlatformChunkInstall.h:34
@ NotAvailable
Definition GenericPlatformChunkInstall.h:35
@ LocalSlow
Definition GenericPlatformChunkInstall.h:36
Definition GenericPlatformChunkInstall.h:55
Type
Definition GenericPlatformChunkInstall.h:57
@ High
Definition GenericPlatformChunkInstall.h:59
@ Low
Definition GenericPlatformChunkInstall.h:60
@ Immediate
Definition GenericPlatformChunkInstall.h:58
Definition GenericPlatformChunkInstall.h:65
Type
Definition GenericPlatformChunkInstall.h:67
@ PercentageComplete
Definition GenericPlatformChunkInstall.h:69
@ ETA
Definition GenericPlatformChunkInstall.h:68
Definition GenericPlatformChunkInstall.h:119
bool bIsInstalled
Definition GenericPlatformChunkInstall.h:122
uint64 CurrentInstallSize
Definition GenericPlatformChunkInstall.h:120
uint64 FullInstallSize
Definition GenericPlatformChunkInstall.h:121
Definition GenericPlatformChunkInstall.h:74
bool bIsInstalled
Definition GenericPlatformChunkInstall.h:77
bool bHasSucceeded
Definition GenericPlatformChunkInstall.h:78
EChunkLocation::Type Location
Definition GenericPlatformChunkInstall.h:76
FName NamedChunk
Definition GenericPlatformChunkInstall.h:75