Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Private/ClassMaps.h
Mikolaj Sieluzycki 804973185b Add clickable error with file name and line number information in error/output window when superclass is missing.
#ttp 332332 UE4: Core: UnrealHeaderTool: Doesn't provide source file and line number for error about missing superclass
#proj core
#branch UE4
#summary Add clickable error with file name and line number information in error/output window when superclass is missing.
#codereview steve.robb

[CL 2077342 by Mikolaj Sieluzycki in Main branch]
2014-05-19 03:21:12 -04:00

65 lines
1.7 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "UniquePtr.h"
template <typename T>
class TUniqueObj
{
public:
TUniqueObj()
: Obj_(MakeUnique<T>())
{
}
template <typename Arg>
explicit TUniqueObj(Arg&& arg)
: Obj_(MakeUnique<T>(Forward<Arg>(arg)))
{
}
T* operator->() { return Obj_.Get(); }
const T* operator->() const { return Obj_.Get(); }
T& operator*() { return *Obj_; }
const T& operator*() const { return *Obj_; }
private:
TUniquePtr<T> Obj_;
};
/** Information about class source and generated headers */
struct FClassHeaderInfo
{
FString SourceFilename;
FString GeneratedFilename;
bool bHasChanged;
FClassHeaderInfo()
: bHasChanged(false)
{
}
explicit FClassHeaderInfo(const FString& InSourceFilename)
: SourceFilename(InSourceFilename)
, bHasChanged(false)
{
}
};
struct FManifestModule;
extern TMap<UClass*, FString> GClassStrippedHeaderTextMap;
extern TMap<UClass*, FString> GClassSourceFileMap;
extern TMap<UClass*, int32> GClassDeclarationLineNumber;
extern TMap<UClass*, FClassHeaderInfo> GClassGeneratedFileMap;
extern TMap<UClass*, TUniqueObj<TArray<FName>>> GClassDependentOnMap;
extern TMap<UClass*, FString> GClassHeaderNameWithNoPathMap;
extern TMap<UClass*, FString> GClassModuleRelativePathMap;
extern TMap<UClass*, FString> GClassIncludePathMap;
extern TSet<UClass*> GExportedClasses;
extern TSet<UClass*> GPublicClassSet;
extern TMap<UProperty*, FString> GArrayDimensions;
extern TMap<UPackage*, const FManifestModule*> GPackageToManifestModuleMap;