You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
* FToken now lazily initializes FName version when needed * FToken now avoids string compares when matching single character symbols and requires that case sensitivity be specified for matching identifiers * FClass now maintains a type package name map rather than reconstructing package name repeatedly * HeaderParser now avoids name lookups, avoids case insensitive string compares, and uses move semantics whenever possible #rb #jira #rnx #ROBOMERGE-OWNER: marc.audy #ROBOMERGE-AUTHOR: marc.audy #ROBOMERGE-SOURCE: CL 10872843 via CL 10872844 via CL 10872845 #ROBOMERGE-BOT: (v623-10872670) [CL 10872857 by marc audy in Main branch]
72 lines
1.7 KiB
C++
72 lines
1.7 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/Class.h"
|
|
#include "UObject/Field.h"
|
|
|
|
class UField;
|
|
|
|
struct EEnforceInterfacePrefix
|
|
{
|
|
enum Type
|
|
{
|
|
None,
|
|
I,
|
|
U
|
|
};
|
|
};
|
|
|
|
class FClasses;
|
|
|
|
class FClass : public UClass
|
|
{
|
|
public:
|
|
FClass();
|
|
|
|
/**
|
|
* Returns the name of the given class with a valid prefix.
|
|
*
|
|
* @param InClass Class used to create a valid class name with prefix
|
|
*/
|
|
FString GetNameWithPrefix(EEnforceInterfacePrefix::Type EnforceInterfacePrefix = EEnforceInterfacePrefix::None) const;
|
|
|
|
/**
|
|
* Returns the super class of this class, or NULL if there is no superclass.
|
|
*
|
|
* @return The super class of this class.
|
|
*/
|
|
FClass* GetSuperClass() const;
|
|
|
|
/**
|
|
* Returns the 'within' class of this class.
|
|
*
|
|
* @return The 'within' class of this class.
|
|
*/
|
|
FClass* GetClassWithin() const;
|
|
|
|
TArray<FClass*> GetInterfaceTypes() const;
|
|
|
|
void GetHideCategories(TArray<FString>& OutHideCategories) const;
|
|
void GetShowCategories(TArray<FString>& OutShowCategories) const;
|
|
void GetSparseClassDataTypes(TArray<FString>& OutSparseClassDataTypes) const;
|
|
|
|
/** Helper function that checks if the field is a dynamic type (can be constructed post-startup) */
|
|
template <typename T>
|
|
static bool IsDynamic(const T* Field)
|
|
{
|
|
return Field->HasMetaData(NAME_ReplaceConverted);
|
|
}
|
|
|
|
/** Helper function that checks if the field is belongs to a dynamic type */
|
|
static bool IsOwnedByDynamicType(const UField* Field);
|
|
static bool IsOwnedByDynamicType(const FField* Field);
|
|
|
|
/** Helper function to get the source replaced package name */
|
|
static const FString& GetTypePackageName(const UField* Field);
|
|
static const FString& GetTypePackageName(const FField* Field);
|
|
|
|
static const FName NAME_ReplaceConverted;
|
|
};
|