UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ObjectResource.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreMinimal.h"
7#include "CoreTypes.h"
9#include "Misc/CString.h"
10#include "Misc/EnumClassFlags.h"
11#include "Misc/Guid.h"
16#include "UObject/NameTypes.h"
18#if !WITH_VERSE_VM
20#endif
21
22class FArchive;
23class FLinkerLoad;
24class FPackageIndex;
25class UClass;
26class UObject;
27
28namespace Verse
29{
30 struct VCppClassInfo;
31 struct VCell;
32 struct VUniqueString;
33}
34
44{
53
56 : Index(InIndex)
57 {
58
59 }
60public:
63 : Index(0)
64 {
65
66 }
69 {
70 return Index < 0;
71 }
74 {
75 return Index > 0;
76 }
79 {
80 return Index == 0;
81 }
83 inline int32 ToImport() const
84 {
85 check(IsImport());
86 return -Index - 1;
87 }
89 inline int32 ToExport() const
90 {
91 check(IsExport());
92 return Index - 1;
93 }
96 {
97 return Index;
98 }
99
101 inline static FPackageIndex FromImport(int32 ImportIndex)
102 {
103 check(ImportIndex >= 0);
104 return FPackageIndex(-ImportIndex - 1);
105 }
107 inline static FPackageIndex FromExport(int32 ExportIndex)
108 {
109 check(ExportIndex >= 0);
110 return FPackageIndex(ExportIndex + 1);
111 }
112
115 {
116 return Index == Other.Index;
117 }
120 {
121 return Index != Other.Index;
122 }
123
126 {
127 return Index < Other.Index;
128 }
130 {
131 return Index > Other.Index;
132 }
134 {
135 return Index <= Other.Index;
136 }
138 {
139 return Index >= Other.Index;
140 }
148 {
150 return Ar;
151 }
152
160 {
161 Slot << Value.Index;
162 }
163
165 {
166 return uint32(In.Index);
167 }
168
175 friend FString LexToString(const FPackageIndex& Value)
176 {
177 return FString::FromInt(Value.Index);
178 }
179
181 {
182 Value.Index = FCString::Atoi(String);
183 }
184};
185
192{
198
205
206#if WITH_EDITORONLY_DATA
211 FName OldClassName;
212#endif
213
215 FObjectResource( UObject* InObject );
216};
217
218/*-----------------------------------------------------------------------------
219 FObjectExport.
220-----------------------------------------------------------------------------*/
221
227{
235
242
250
258
265
271
278
286
294
300
306
312
318
324
332
336 bool bIsAsset:1;
337
343
348
353
358
364
374
380
381 // Workaround for clang deprecation warnings for deprecated PackageGuid member in implicit constructors
384 FObjectExport(const FObjectExport&) = default;
388
391
395};
396
397/*-----------------------------------------------------------------------------
398 FObjectTextExport
399-----------------------------------------------------------------------------*/
400
404// TODO SavePackageDeprecation: remove once SavePackage2 replaces SavePackage
434
435/*-----------------------------------------------------------------------------
436 FObjectImport.
437-----------------------------------------------------------------------------*/
438
444{
450
456
457#if WITH_EDITORONLY_DATA
463 FName PackageName;
464#endif
465
471
476
480
486
492
497 FObjectImport( UObject* InObject );
498 FObjectImport( UObject* InObject, UClass* InClass );
499
505 bool HasPackageName() const
506 {
507#if WITH_EDITORONLY_DATA
508 return !PackageName.IsNone();
509#else
510 return false;
511#endif
512 }
513
520 {
521#if WITH_EDITORONLY_DATA
522 return PackageName;
523#else
524 return NAME_None;
525#endif
526 }
527
534 {
535#if WITH_EDITORONLY_DATA
536 PackageName = InPackageName;
537#endif
538 }
539
543};
544
547{
548 None = 0,
549 Inline = (1 << 0),
550 Streaming = (1 << 1),
551 Optional = (1 << 2),
552 Duplicate = (1 << 3),
553 MemoryMapped = (1 << 4),
554 DerivedDataReference = (1 << 5),
555};
557
592
595{
597#if WITH_VERSE_VM || defined(__INTELLISENSE__)
598 Verse::VUniqueString* VersePath;
599#else
601#endif
602};
603
606{
607#if WITH_VERSE_VM || defined(__INTELLISENSE__)
608 const Verse::VCppClassInfo* CppClassInfo;
609#else
611#endif
612
619
620 Verse::VCell* Cell;
621
625
627#if WITH_VERSE_VM || defined(__INTELLISENSE__)
628 FCellExport(Verse::VCell* InCell);
629#endif
630
633};
634
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
EObjectFlags
Definition ObjectMacros.h:552
EObjectDataResourceFlags
Definition ObjectResource.h:547
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition BulkDataCookedIndex.h:34
Definition LinkerLoad.h:124
Definition NameTypes.h:617
FORCEINLINE bool IsNone() const
Definition NameTypes.h:827
Definition ObjectResource.h:44
friend FArchive & operator<<(FArchive &Ar, FPackageIndex &Value)
Definition ObjectResource.h:147
UE_FORCEINLINE_HINT bool IsImport() const
Definition ObjectResource.h:68
UE_FORCEINLINE_HINT bool operator<=(const FPackageIndex &Other) const
Definition ObjectResource.h:133
UE_FORCEINLINE_HINT bool operator<(const FPackageIndex &Other) const
Definition ObjectResource.h:125
UE_FORCEINLINE_HINT friend void operator<<(FStructuredArchive::FSlot Slot, FPackageIndex &Value)
Definition ObjectResource.h:159
int32 ToExport() const
Definition ObjectResource.h:89
int32 ToImport() const
Definition ObjectResource.h:83
static FPackageIndex FromExport(int32 ExportIndex)
Definition ObjectResource.h:107
UE_FORCEINLINE_HINT bool operator>=(const FPackageIndex &Other) const
Definition ObjectResource.h:137
UE_FORCEINLINE_HINT bool operator==(const FPackageIndex &Other) const
Definition ObjectResource.h:114
UE_FORCEINLINE_HINT FPackageIndex()
Definition ObjectResource.h:62
UE_FORCEINLINE_HINT friend uint32 GetTypeHash(const FPackageIndex &In)
Definition ObjectResource.h:164
friend void LexFromString(FPackageIndex &Value, const TCHAR *String)
Definition ObjectResource.h:180
friend FString LexToString(const FPackageIndex &Value)
Definition ObjectResource.h:175
UE_FORCEINLINE_HINT bool operator!=(const FPackageIndex &Other) const
Definition ObjectResource.h:119
static FPackageIndex FromImport(int32 ImportIndex)
Definition ObjectResource.h:101
UE_FORCEINLINE_HINT bool operator>(const FPackageIndex &Other) const
Definition ObjectResource.h:129
UE_FORCEINLINE_HINT bool IsExport() const
Definition ObjectResource.h:73
UE_FORCEINLINE_HINT int32 ForDebugging() const
Definition ObjectResource.h:95
UE_FORCEINLINE_HINT bool IsNull() const
Definition ObjectResource.h:78
Definition StructuredArchiveAdapters.h:13
CORE_API FStructuredArchiveSlot GetSlot()
Definition StructuredArchiveFromArchive.cpp:37
Definition StructuredArchiveSlots.h:52
Definition Array.h:670
Definition Class.h:3793
Definition Object.h:95
Definition Archive.h:36
U16 Index
Definition radfft.cpp:71
Definition ObjectResource.h:606
friend COREUOBJECT_API FArchive & operator<<(FArchive &Ar, FCellExport &E)
Definition ObjectResource.cpp:460
int32 FirstExportDependency
Definition ObjectResource.h:622
int64 SerialLayoutSize
Definition ObjectResource.h:616
FName CppClassInfo
Definition ObjectResource.h:610
Verse::VCell * Cell
Definition ObjectResource.h:620
int64 SerialSize
Definition ObjectResource.h:618
int64 SerialOffset
Definition ObjectResource.h:614
int32 CreateBeforeSerializationDependencies
Definition ObjectResource.h:624
COREUOBJECT_API FCellExport()
Definition ObjectResource.cpp:430
int32 SerializationBeforeSerializationDependencies
Definition ObjectResource.h:623
Definition ObjectResource.h:637
friend COREUOBJECT_API FArchive & operator<<(FArchive &Ar, FCellImport &I)
Definition ObjectResource.cpp:512
Verse::VCell * Cell
Definition ObjectResource.h:640
COREUOBJECT_API FCellImport()
Definition ObjectResource.cpp:502
FPackageIndex PackageIndex
Definition ObjectResource.h:638
Definition ObjectResource.h:595
FUtf8String VersePath
Definition ObjectResource.h:600
Definition ObjectResource.h:562
uint32 LegacyBulkDataFlags
Definition ObjectResource.h:587
FPackageIndex OuterIndex
Definition ObjectResource.h:585
EVersion
Definition ObjectResource.h:564
EObjectDataResourceFlags Flags
Definition ObjectResource.h:573
int64 SerialSize
Definition ObjectResource.h:581
int64 DuplicateSerialOffset
Definition ObjectResource.h:579
int64 RawSize
Definition ObjectResource.h:583
FBulkDataCookedIndex CookedIndex
Definition ObjectResource.h:575
int64 SerialOffset
Definition ObjectResource.h:577
Definition ObjectResource.h:227
bool bForcedExport
Definition ObjectResource.h:311
PRAGMA_DISABLE_DEPRECATION_WARNINGS FObjectExport(FObjectExport &&)=default
bool bIsAsset
Definition ObjectResource.h:336
FPackageIndex TemplateIndex
Definition ObjectResource.h:257
bool bNotForServer
Definition ObjectResource.h:323
bool bIsInheritedInstance
Definition ObjectResource.h:342
uint32 PackageFlags
Definition ObjectResource.h:363
FObjectExport & operator=(const FObjectExport &)=default
bool bNotAlwaysLoadedForEditorGame
Definition ObjectResource.h:331
bool bExportLoadFailed
Definition ObjectResource.h:352
bool bNotForClient
Definition ObjectResource.h:317
FPackageIndex SuperIndex
Definition ObjectResource.h:249
FPackageIndex ThisIndex
Definition ObjectResource.h:241
int32 CreateBeforeCreateDependencies
Definition ObjectResource.h:373
int32 CreateBeforeSerializationDependencies
Definition ObjectResource.h:371
int32 SerializationBeforeSerializationDependencies
Definition ObjectResource.h:370
UObject * Object
Definition ObjectResource.h:299
int64 ScriptSerializationEndOffset
Definition ObjectResource.h:293
FObjectExport(const FObjectExport &)=default
friend COREUOBJECT_API FArchive & operator<<(FArchive &Ar, FObjectExport &E)
Definition ObjectResource.cpp:119
int32 FirstExportDependency
Definition ObjectResource.h:369
PRAGMA_ENABLE_DEPRECATION_WARNINGS COREUOBJECT_API void ResetObject()
Definition ObjectResource.cpp:112
EObjectFlags ObjectFlags
Definition ObjectResource.h:264
int32 HashNext
Definition ObjectResource.h:305
int32 SerializationBeforeCreateDependencies
Definition ObjectResource.h:372
FObjectExport & operator=(FObjectExport &&)=default
int64 ScriptSerializationStartOffset
Definition ObjectResource.h:285
int64 SerialSize
Definition ObjectResource.h:270
COREUOBJECT_API FObjectExport()
Definition ObjectResource.cpp:38
bool bWasFiltered
Definition ObjectResource.h:357
int64 SerialOffset
Definition ObjectResource.h:277
bool bGeneratePublicHash
Definition ObjectResource.h:347
FPackageIndex ClassIndex
Definition ObjectResource.h:234
Definition ObjectResource.h:444
void SetPackageName(FName InPackageName)
Definition ObjectResource.h:533
COREUOBJECT_API FObjectImport()
Definition ObjectResource.cpp:307
FName ClassPackage
Definition ObjectResource.h:449
FName GetPackageName() const
Definition ObjectResource.h:519
FLinkerLoad * SourceLinker
Definition ObjectResource.h:491
bool bImportSearchedFor
Definition ObjectResource.h:478
bool HasPackageName() const
Definition ObjectResource.h:505
int32 SourceIndex
Definition ObjectResource.h:470
friend COREUOBJECT_API FArchive & operator<<(FArchive &Ar, FObjectImport &I)
Definition ObjectResource.cpp:347
bool bImportOptional
Definition ObjectResource.h:475
FName ClassName
Definition ObjectResource.h:455
UObject * XObject
Definition ObjectResource.h:485
bool bImportPackageHandled
Definition ObjectResource.h:477
bool bImportFailed
Definition ObjectResource.h:479
Definition ObjectResource.h:192
FObjectResource()
Definition ObjectResource.cpp:26
FPackageIndex OuterIndex
Definition ObjectResource.h:204
FName ObjectName
Definition ObjectResource.h:197
Definition ObjectResource.h:406
FObjectTextExport(FObjectExport &InExport, UObject *InOuter)
Definition ObjectResource.h:410
FObjectExport & Export
Definition ObjectResource.h:417
FString OuterName
Definition ObjectResource.h:429
FString SuperStructName
Definition ObjectResource.h:426
friend COREUOBJECT_API void operator<<(FStructuredArchive::FSlot Slot, FObjectTextExport &E)
Definition ObjectResource.cpp:231
UObject * Outer
Definition ObjectResource.h:420
FString ClassName
Definition ObjectResource.h:423
static UE_FORCEINLINE_HINT int32 Atoi(const CharType *String)
Definition CString.h:1173