6#include "Containers/Array.h"
7#include "Containers/Set.h"
12#include "Misc/Optional.h"
20template <
typename ElementType,
typename KeyFuncs>
class TSetKeyFuncs;
47#ifndef UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
48#define UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS 0
107#if !UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
239 static constexpr uint32 EmptyList = 0xffff'ffff;
242 static constexpr uint32 ArrayType = 0x8000'0000;
322 struct FIterationSentinel;
323 using KeyType =
FName;
376 struct FIterationSentinel
408 return A ^ (
B + 0x9e3779b9 + (
A << 6) + (
A >> 2));
418#if WITH_EDITORONLY_DATA
419 if (!
InAssetData->GetOptionalOuterPathName().IsNone())
475 return FString(Builder);
497 Key.AppendString(Builder);
503 return A.OuterPath ==
B.OuterPath &&
A.ObjectName ==
B.ObjectName;
508 return A.OuterPath !=
B.OuterPath ||
A.ObjectName !=
B.ObjectName;
516#if UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
527 TEXT(
"FAssetDataPtrIndex value is too large. Value == %u. Maximum supported value == 0x7fffffff."),
538 TEXT(
"FAssetDataArrayIndex value is too large. Value == %u. Maximum supported value == 0x7fffffff."),
545inline bool FAssetDataOrArrayIndex::IsEmptyList()
const
547 return Value == EmptyList;
550inline bool FAssetDataOrArrayIndex::IsAssetDataPtrIndex()
const
555inline bool FAssetDataOrArrayIndex::IsAssetDataArrayIndex()
const
580inline FIndirectAssetDataArrays::FArrayOrNextIndex::FArrayOrNextIndex()
594 Other.bArray =
false;
600 NextIndex =
Other.NextIndex;
605inline FIndirectAssetDataArrays::FArrayOrNextIndex::~FArrayOrNextIndex()
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
UE_FORCEINLINE_HINT FLinearColor operator*(float Scalar, const FLinearColor &Color)
Definition Color.h:473
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
@ FNAME_Find
Definition NameTypes.h:209
#define MAX_uint32
Definition NumericLimits.h:21
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition NameTypes.h:617
FORCEINLINE int32 CompareIndexes(const FName &Other) const
Definition NameTypes.h:935
Definition SetUtilities.h:95
~TArray()
Definition Array.h:992
Definition AssetRegistryState.h:50
Definition SetKeyFuncs.h:44
const CharType * ToString() UE_LIFETIMEBOUND
Definition StringBuilder.h:135
Definition StringBuilder.h:509
constexpr bool IsEmpty() const
Definition StringView.h:180
Definition UniquePtr.h:107
@ Contains
Definition AutomationTest.h:160
SIZE_T GetAllocatedSize(const T &Value)
Definition ManagedArray.h:93
Definition AssetRegistryImpl.h:48
void ConcatenateOuterPathAndObjectName(FStringBuilderBase &Builder, FName OuterPath, FName ObjectName)
Definition AssetData.cpp:114
FAssetPathParts SplitIntoOuterPathAndAssetName(FStringView InObjectPath)
Definition AssetData.cpp:103
bool operator!=(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:506
FStringBuilderBase & operator<<(FStringBuilderBase &Builder, const FCachedAssetKey &Key)
Definition AssetDataMap.h:495
TSet< const FAssetData *, FCachedAssetKeyFuncs > FConstAssetDataMap
Definition AssetDataMap.h:114
uint32 HashCombineQuick(uint32 A, uint32 B)
Definition AssetDataMap.h:406
TSet< FAssetData *, FCachedAssetKeyFuncs > FAssetDataMap
Definition AssetDataMap.h:113
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
uint32 GetTypeHash(const FCachedAssetKey &A)
Definition AssetDataMap.h:511
FORCEINLINE FStridedReferenceIterator begin(FStridedReferenceView View)
Definition FastReferenceCollector.h:490
FORCEINLINE FStridedReferenceIterator end(FStridedReferenceView View)
Definition FastReferenceCollector.h:491
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition AssetData.h:162
Definition SoftObjectPath.h:56
Definition TopLevelAssetPath.h:38
Definition TypeCompatibleBytes.h:17
Definition Optional.h:131
Definition AssetData.h:132
FStringView OuterPath
Definition AssetData.h:133
FStringView InnermostName
Definition AssetData.h:134
Definition AssetDataMap.h:85
void ElementInitType
Definition AssetDataMap.h:87
static KeyInitType GetSetKey(const FAssetData *Element)
Definition AssetDataMap.h:91
@ bAllowDuplicateKeys
Definition AssetDataMap.h:89
static bool Matches(KeyInitType A, KeyInitType B)
Definition AssetDataMap.h:96
static uint32 GetKeyHash(KeyInitType Key)
Definition AssetDataMap.h:101
Definition AssetDataMap.h:61
void AppendString(FStringBuilderBase &Builder) const
Definition AssetDataMap.h:490
FName ObjectName
Definition AssetDataMap.h:72
FName OuterPath
Definition AssetDataMap.h:71
FString ToString() const
Definition AssetDataMap.h:471
int32 Compare(const FCachedAssetKey &Other) const
Definition AssetDataMap.h:478
FCachedAssetKey(const FAssetData *InAssetData)
Definition AssetDataMap.h:411