UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CookedMetaData.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "UObject/Object.h"
10
11#include "CookedMetaData.generated.h"
12
16USTRUCT()
18{
19public:
21
22 COREUOBJECT_API bool HasMetaData() const;
23 COREUOBJECT_API void CacheMetaData(const UObject* SourceObject);
24 COREUOBJECT_API void ApplyMetaData(UObject* TargetObject) const;
25
26private:
27 UPROPERTY()
28 TMap<FName, FString> ObjectMetaData;
29};
30
34USTRUCT()
36{
37public:
39
40 UPROPERTY()
41 TArray<FName> FieldPath;
42
44
45 inline bool operator==(const FFieldCookedMetaDataKey& Other) const
46 {
47 return Other.FieldPath == FieldPath;
48 }
49
50 inline bool operator!=(const FFieldCookedMetaDataKey& Other) const
51 {
52 return Other.FieldPath != FieldPath;
53 }
54
56 {
57 return GetTypeHash(Key.FieldPath);
58 }
59};
60
64USTRUCT()
73
77USTRUCT()
79{
80public:
82
83 COREUOBJECT_API bool HasMetaData() const;
84 COREUOBJECT_API void CacheMetaData(const FField* SourceField);
85 COREUOBJECT_API void ApplyMetaData(FField* TargetField) const;
86
87protected:
90
91private:
92 UPROPERTY()
93 TMap<FName, FString> FieldMetaData;
94
95 UPROPERTY()
97};
98
102USTRUCT()
104{
105public:
107
108 COREUOBJECT_API bool HasMetaData() const;
109 COREUOBJECT_API void CacheMetaData(const UStruct* SourceStruct);
110 COREUOBJECT_API void ApplyMetaData(UStruct* TargetStruct) const;
111
112private:
113 UPROPERTY()
114 FObjectCookedMetaDataStore ObjectMetaData;
115
116 UPROPERTY()
118};
119
123UCLASS(Optional, Within=Enum, MinimalAPI)
125{
126public:
128
129 COREUOBJECT_API virtual void PostLoad() override;
130
131 COREUOBJECT_API virtual bool HasMetaData() const;
132 COREUOBJECT_API virtual void CacheMetaData(const UEnum* SourceEnum);
133 COREUOBJECT_API virtual void ApplyMetaData(UEnum* TargetEnum) const;
134
135protected:
136 UPROPERTY()
138};
139
143UCLASS(Optional, Within=ScriptStruct, MinimalAPI)
145{
146public:
148
149 COREUOBJECT_API virtual void PostLoad() override;
150
151 COREUOBJECT_API virtual bool HasMetaData() const;
152 COREUOBJECT_API virtual void CacheMetaData(const UScriptStruct* SourceStruct);
153 COREUOBJECT_API virtual void ApplyMetaData(UScriptStruct* TargetStruct) const;
154
155protected:
156 UPROPERTY()
158};
159
163UCLASS(Optional, Within=Class, MinimalAPI)
165{
166public:
168
169 COREUOBJECT_API virtual void PostLoad() override;
170
171 COREUOBJECT_API virtual bool HasMetaData() const;
172 COREUOBJECT_API virtual void CacheMetaData(const UClass* SourceClass);
173 COREUOBJECT_API virtual void ApplyMetaData(UClass* TargetClass) const;
174
175protected:
176 UPROPERTY()
178
179 UPROPERTY()
181};
182
183namespace CookedMetaDataUtil
184{
185
186namespace Internal
187{
188COREUOBJECT_API void PrepareCookedMetaDataForPurge(UObject* CookedMetaDataPtr);
189}
190
191template <typename CookedMetaDataType>
196
197template <typename CookedMetaDataType>
202
203template <typename CookedMetaDataType, typename CookedMetaDataPtrType>
205{
206 Internal::PrepareCookedMetaDataForPurge(CookedMetaDataPtr);
207 CookedMetaDataPtr = nullptr;
208}
209
210}
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
@ RF_Public
Object is visible outside its package.
Definition ObjectMacros.h:559
@ RF_Standalone
Keep object around for editing even if unreferenced.
Definition ObjectMacros.h:560
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Field.h:556
Definition NameTypes.h:617
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SubclassOf.h:30
Definition CookedMetaData.h:165
Definition Class.h:3793
Definition CookedMetaData.h:125
Definition Class.h:2791
Definition Object.h:95
Definition Class.h:1720
Definition CookedMetaData.h:145
Definition Class.h:480
Definition CookedMetaData.cpp:12
CookedMetaDataType * NewCookedMetaData(UObject *Outer, FName Name, TSubclassOf< CookedMetaDataType > Class=CookedMetaDataType::StaticClass())
Definition CookedMetaData.h:192
CookedMetaDataType * FindCookedMetaData(UObject *Outer, const TCHAR *Name)
Definition CookedMetaData.h:198
void PurgeCookedMetaData(CookedMetaDataPtrType &CookedMetaDataPtr)
Definition CookedMetaData.h:204
Definition ByteSwap.h:14
Definition CookedMetaData.h:36
TArray< FName > FieldPath
Definition CookedMetaData.h:41
bool operator!=(const FFieldCookedMetaDataKey &Other) const
Definition CookedMetaData.h:50
friend uint32 GetTypeHash(const FFieldCookedMetaDataKey &Key)
Definition CookedMetaData.h:55
Definition CookedMetaData.h:79
Definition CookedMetaData.h:66
Definition CookedMetaData.h:18
Definition CookedMetaData.h:104