You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
85 lines
4.0 KiB
C++
85 lines
4.0 KiB
C++
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "ClassMetaDataArchiveProxy.h"
|
|
#include "UnrealHeaderTool.h"
|
|
#include "ParserHelper.h"
|
|
|
|
FClassMetaDataArchiveProxy::FClassMetaDataArchiveProxy(const FUHTMakefile& UHTMakefile, const FClassMetaData* ClassMetaData)
|
|
{
|
|
GlobalPropertyData = FPropertyDataArchiveProxy(UHTMakefile, &ClassMetaData->GlobalPropertyData);
|
|
|
|
for (FMultipleInheritanceBaseClass* MultipleInheritanceBaseClass : ClassMetaData->MultipleInheritanceParents)
|
|
{
|
|
MultipleInheritanceParents.Add(FMultipleInheritanceBaseClassArchiveProxy(UHTMakefile, MultipleInheritanceBaseClass));
|
|
}
|
|
|
|
bContainsDelegates = ClassMetaData->bContainsDelegates;
|
|
PrologLine = ClassMetaData->PrologLine;
|
|
GeneratedBodyLine = ClassMetaData->GeneratedBodyLine;
|
|
InterfaceGeneratedBodyLine = ClassMetaData->InterfaceGeneratedBodyLine;
|
|
bConstructorDeclared = ClassMetaData->bConstructorDeclared;
|
|
bDefaultConstructorDeclared = ClassMetaData->bDefaultConstructorDeclared;
|
|
bObjectInitializerConstructorDeclared = ClassMetaData->bObjectInitializerConstructorDeclared;
|
|
bCustomVTableHelperConstructorDeclared = ClassMetaData->bCustomVTableHelperConstructorDeclared;
|
|
GeneratedBodyMacroAccessSpecifier = ClassMetaData->GeneratedBodyMacroAccessSpecifier;
|
|
}
|
|
|
|
void FClassMetaDataArchiveProxy::AddReferencedNames(const FClassMetaData* ClassMetaData, FUHTMakefile& UHTMakefile)
|
|
{
|
|
FPropertyDataArchiveProxy::AddReferencedNames(&ClassMetaData->GlobalPropertyData, UHTMakefile);
|
|
|
|
for (FMultipleInheritanceBaseClass* MultipleInheritanceBaseClass : ClassMetaData->MultipleInheritanceParents)
|
|
{
|
|
FMultipleInheritanceBaseClassArchiveProxy::AddReferencedNames(MultipleInheritanceBaseClass, UHTMakefile);
|
|
}
|
|
}
|
|
|
|
TUniquePtr<FClassMetaData> FClassMetaDataArchiveProxy::CreateClassMetaData() const
|
|
{
|
|
TUniquePtr<FClassMetaData> ClassMetaData = MakeUnique<FClassMetaData>();
|
|
PostConstruct(ClassMetaData.Get());
|
|
return ClassMetaData;
|
|
}
|
|
|
|
void FClassMetaDataArchiveProxy::PostConstruct(FClassMetaData* ClassMetaData) const
|
|
{
|
|
ClassMetaData->bContainsDelegates = bContainsDelegates;
|
|
ClassMetaData->PrologLine = PrologLine;
|
|
ClassMetaData->GeneratedBodyLine = GeneratedBodyLine;
|
|
ClassMetaData->InterfaceGeneratedBodyLine = InterfaceGeneratedBodyLine;
|
|
ClassMetaData->bConstructorDeclared = bConstructorDeclared;
|
|
ClassMetaData->bDefaultConstructorDeclared = bDefaultConstructorDeclared;
|
|
ClassMetaData->bObjectInitializerConstructorDeclared = bObjectInitializerConstructorDeclared;
|
|
ClassMetaData->bCustomVTableHelperConstructorDeclared = bCustomVTableHelperConstructorDeclared;
|
|
ClassMetaData->GeneratedBodyMacroAccessSpecifier = GeneratedBodyMacroAccessSpecifier;
|
|
}
|
|
|
|
void FClassMetaDataArchiveProxy::Resolve(FClassMetaData* ClassMetaData, FUHTMakefile& UHTMakefile)
|
|
{
|
|
GlobalPropertyData.Resolve(&ClassMetaData->GlobalPropertyData, UHTMakefile);
|
|
|
|
for (const FMultipleInheritanceBaseClassArchiveProxy& MultipleInheritanceBaseClassArchiveProxy : MultipleInheritanceParents)
|
|
{
|
|
FMultipleInheritanceBaseClass* MultipleInheritanceBaseClass = MultipleInheritanceBaseClassArchiveProxy.CreateMultipleInheritanceBaseClass();
|
|
MultipleInheritanceBaseClassArchiveProxy.Resolve(MultipleInheritanceBaseClass, UHTMakefile);
|
|
ClassMetaData->MultipleInheritanceParents.Add(MultipleInheritanceBaseClass);
|
|
}
|
|
}
|
|
|
|
FArchive& operator<<(FArchive& Ar, FClassMetaDataArchiveProxy& ClassMetaDataArchiveProxy)
|
|
{
|
|
Ar << ClassMetaDataArchiveProxy.GlobalPropertyData;
|
|
Ar << ClassMetaDataArchiveProxy.MultipleInheritanceParents;
|
|
Ar << ClassMetaDataArchiveProxy.bContainsDelegates;
|
|
Ar << ClassMetaDataArchiveProxy.PrologLine;
|
|
Ar << ClassMetaDataArchiveProxy.GeneratedBodyLine;
|
|
Ar << ClassMetaDataArchiveProxy.InterfaceGeneratedBodyLine;
|
|
Ar << ClassMetaDataArchiveProxy.bConstructorDeclared;
|
|
Ar << ClassMetaDataArchiveProxy.bDefaultConstructorDeclared;
|
|
Ar << ClassMetaDataArchiveProxy.bObjectInitializerConstructorDeclared;
|
|
Ar << ClassMetaDataArchiveProxy.bCustomVTableHelperConstructorDeclared;
|
|
Ar << ClassMetaDataArchiveProxy.GeneratedBodyMacroAccessSpecifier;
|
|
|
|
return Ar;
|
|
}
|