Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Private/HeaderProvider.h
Ben Marsh 20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00

56 lines
1.2 KiB
C++

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Containers/UnrealString.h"
class FUnrealSourceFile;
class FUHTMakefile;
enum class EHeaderProviderSourceType
{
ClassName,
FileName,
Resolved,
Invalid,
};
class FHeaderProvider
{
friend bool operator==(const FHeaderProvider& A, const FHeaderProvider& B);
public:
FHeaderProvider(EHeaderProviderSourceType Type, const FString& Id, bool bAutoInclude = false);
FHeaderProvider()
: Type(EHeaderProviderSourceType::Invalid)
, Id(FString())
, Cache(nullptr)
, bAutoInclude(false)
{ }
FUnrealSourceFile* Resolve();
const FUnrealSourceFile* GetResolved() const;
FUnrealSourceFile* GetResolved();
FString ToString() const;
const FString& GetId() const;
EHeaderProviderSourceType GetType() const;
bool IsAutoInclude() const { return bAutoInclude; }
void SetCache(FUnrealSourceFile* InCache)
{
Cache = InCache;
}
private:
EHeaderProviderSourceType Type;
FString Id;
FUnrealSourceFile* Cache;
// Tells if this include should be auto included in generated.h file.
bool bAutoInclude;
};
bool operator==(const FHeaderProvider& A, const FHeaderProvider& B);