Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Private/UHTMakefile/CompilerMetadataManagerArchiveProxy.cpp
Matthew Griffin bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00

37 lines
1.5 KiB
C++

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
#include "UnrealHeaderTool.h"
#include "UHTMakefile/UHTMakefile.h"
#include "UHTMakefile/CompilerMetadataManagerArchiveProxy.h"
FCompilerMetadataManagerArchiveProxy::FCompilerMetadataManagerArchiveProxy(const FUHTMakefile& UHTMakefile, TArray<TPair<UStruct*, FClassMetaData*>>& CompilerMetadataManager)
{
for (auto& Kvp : CompilerMetadataManager)
{
Array.Add(TPairInitializer<FSerializeIndex, FClassMetaDataArchiveProxy>(UHTMakefile.GetStructIndex(Kvp.Key), FClassMetaDataArchiveProxy(UHTMakefile, Kvp.Value)));
}
}
void FCompilerMetadataManagerArchiveProxy::AddReferencedNames(const FCompilerMetadataManager* CompilerMetadataManager, FUHTMakefile& UHTMakefile)
{
for (auto& Kvp : *CompilerMetadataManager)
{
FClassMetaDataArchiveProxy::AddReferencedNames(Kvp.Value, UHTMakefile);
}
}
void FCompilerMetadataManagerArchiveProxy::Resolve(int32 Index, FCompilerMetadataManager& CompilerMetadataManager, FUHTMakefile& UHTMakefile)
{
auto& Kvp = Array[Index];
UStruct* Struct = UHTMakefile.GetStructByIndex(Kvp.Key);
FClassMetaData* ClassMetaData = GScriptHelper.AddClassData(Struct, UHTMakefile, nullptr);
Kvp.Value.PostConstruct(ClassMetaData);
Kvp.Value.Resolve(ClassMetaData, UHTMakefile);
UHTMakefile.CreateGScriptHelperEntry(Struct, ClassMetaData);
}
FArchive& operator<<(FArchive& Ar, FCompilerMetadataManagerArchiveProxy& CompilerMetadataManagerArchiveProxy)
{
Ar << CompilerMetadataManagerArchiveProxy.Array;
return Ar;
}