Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Private/ClassMaps.cpp
Marc Audy 11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00

49 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "ClassMaps.h"
#include "UnrealHeaderTool.h"
#include "UnrealTypeDefinitionInfo.h"
FUnrealSourceFiles GUnrealSourceFilesMap;
FTypeDefinitionInfoMap GTypeDefinitionInfoMap;
TMap<const UPackage*, TArray<UField*>> GPackageSingletons;
FCriticalSection GPackageSingletonsCriticalSection;
FPublicSourceFileSet GPublicSourceFileSet;
TMap<FProperty*, FString> GArrayDimensions;
TMap<UPackage*, const FManifestModule*> GPackageToManifestModuleMap;
TMap<void*, uint32> GGeneratedCodeHashes;
FRWLock GGeneratedCodeHashesLock;
TMap<UEnum*, EUnderlyingEnumType> GEnumUnderlyingTypes;
FClassDeclarations GClassDeclarations;
TSet<FProperty*> GUnsizedProperties;
TSet<UField*> GEditorOnlyDataTypes;
TMap<UStruct*, TTuple<TSharedRef<FUnrealSourceFile>, int32>> GStructToSourceLine;
TMap<UClass*, FArchiveTypeDefinePair> GClassSerializerMap;
TSet<FProperty*> GPropertyUsesMemoryImageAllocator;
void FClassDeclarations::AddIfMissing(FName Name, TUniqueFunction<TSharedRef<FClassDeclarationMetaData>()>&& DeclConstructFunc)
{
FRWScopeLock Lock(ClassDeclLock, SLT_Write);
if (!ClassDeclarations.Contains(Name))
{
TSharedRef<FClassDeclarationMetaData> ClassDecl = DeclConstructFunc();
ClassDeclarations.Add(Name, MoveTemp(ClassDecl));
}
}
FClassDeclarationMetaData* FClassDeclarations::Find(FName Name)
{
FRWScopeLock Lock(ClassDeclLock, SLT_ReadOnly);
if (TSharedRef<FClassDeclarationMetaData>* ClassDecl = ClassDeclarations.Find(Name))
{
return &ClassDecl->Get();
}
return nullptr;
}
FClassDeclarationMetaData& FClassDeclarations::FindChecked(FName Name)
{
FRWScopeLock Lock(ClassDeclLock, SLT_ReadOnly);
return ClassDeclarations.FindChecked(Name).Get();
}