UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BulkDataRegistry.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Map.h"
7#include "HAL/Platform.h"
8#include "Logging/LogMacros.h"
9#include "UObject/NameTypes.h"
10
11#if WITH_EDITOR
12
13#include "Async/Future.h"
15#include "Containers/Array.h"
17#include "Containers/Set.h"
18#include "Delegates/Delegate.h"
19#include "HAL/CriticalSection.h"
20#include "IO/IoHash.h"
21#include "Misc/Optional.h"
22
24class UPackage;
25namespace UE::Serialization { class FEditorBulkData; }
27struct FGuid;
28
31
32#endif
33
35{
36 // Define ERegisterResult even if !WITH_EDITOR to make it easier to use in EditorBulkData.cpp
38 {
39 Success,
42 // Update LexToString when adding new values
43 };
44}
45
46#if WITH_EDITOR
48
50{
52 struct FMetaData
53 {
58 FIoHash RawHash;
63 uint64 RawSize;
64 };
65
67 struct FData
68 {
71 };
72}
73
76{
77public:
79 COREUOBJECT_API static bool IsEnabled();
82
87 virtual void UpdateRegistrationData(UPackage* Owner, const UE::Serialization::FEditorBulkData& BulkData) = 0;
89 virtual void Unregister(const UE::Serialization::FEditorBulkData& BulkData) = 0;
91 virtual void OnExitMemory(const UE::Serialization::FEditorBulkData& BulkData) = 0;
97
99 virtual TFuture<UE::BulkDataRegistry::FMetaData> GetMeta(const FGuid& BulkDataId) = 0;
100
105 virtual TFuture<UE::BulkDataRegistry::FData> GetData(const FGuid& BulkDataId) = 0;
106
111 virtual bool TryGetBulkData(const FGuid& BulkDataId, UE::Serialization::FEditorBulkData* OutBulk = nullptr,
112 FName* OutOwner = nullptr) = 0;
113
120 virtual uint64 GetBulkDataResaveSize(FName PackageName) = 0;
121
123 COREUOBJECT_API static void Initialize();
125 COREUOBJECT_API static void Shutdown();
128
129protected:
130 virtual ~IBulkDataRegistry() {};
131};
132
133namespace UE::BulkDataRegistry::Private
134{
135
138{
139public:
142
144 COREUOBJECT_API void UpdateRegistrationData(UPackage* Owner, const UE::Serialization::FEditorBulkData& BulkData);
146
147private:
149 void OnAllModuleLoadingPhasesComplete();
150
154 bool bPostEngineInitComplete = false;
155};
156
157}
158
159
160// Temporary interface for tunneling the EditorBuildInputResolver into CoreUObject.
161// In the future this will be implemented as part of the BuildAPI
162namespace UE::DerivedData { class IBuildInputResolver; }
163
164COREUOBJECT_API UE::DerivedData::IBuildInputResolver* GetGlobalBuildInputResolver();
165COREUOBJECT_API void SetGlobalBuildInputResolver(UE::DerivedData::IBuildInputResolver* InResolver);
166
167
168#endif // WITH_EDITOR
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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_DELEGATE_RetVal(ReturnValueType, DelegateName)
Definition DelegateCombinations.h:41
const TCHAR * LexToString(EAnalyticsRecordEventMode Mode)
Definition IAnalyticsProvider.cpp:5
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition CompressedBuffer.h:50
Definition NameTypes.h:617
Definition Array.h:670
Definition Future.h:393
Definition UnrealString.h.inl:34
Definition CriticalSection.h:14
Definition EditorBulkData.h:132
Definition Package.h:216
bool IsEnabled()
Definition IAudioLinkFactory.cpp:13
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
Definition BulkDataRegistry.h:35
ERegisterResult
Definition BulkDataRegistry.h:38
Definition DerivedData.cpp:40
Definition StructuredLog.cpp:42
Definition UObjectGlobals.h:3224
Definition Guid.h:109
Definition IoHash.h:33