Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Resources/UHTDebugging/TestObject.h
Helge Mathee d9ea773611 Make sure to perform the documentation checking at the right time (after all statements have been parsed)
#jira UE-76828 UE-76827
#rb none

[CL 7227651 by Helge Mathee in Dev-Anim branch]
2019-07-08 10:57:16 -04:00

197 lines
3.8 KiB
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "EnumOnlyHeader.h"
#include "TestObject.generated.h"
PRAGMA_DISABLE_DEPRECATION_WARNINGS
DECLARE_DYNAMIC_DELEGATE(FSimpleClassDelegate);
DECLARE_DYNAMIC_DELEGATE_OneParam(FRegularDelegate, int32, SomeArgument);
DECLARE_DYNAMIC_DELEGATE_OneParam(FDelegateWithDelegateParam, FRegularDelegate const &, RegularDelegate);
struct ITestObject
{
};
USTRUCT()
struct FContainsInstancedProperty
{
GENERATED_BODY()
UPROPERTY(Instanced)
UObject* Prop;
};
UCLASS()
class alignas(8) UAlignedObject : public UObject
{
GENERATED_BODY()
};
UCLASS()
class UTestObject : public UObject, public ITestObject
{
GENERATED_BODY()
public:
UTestObject(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
UPROPERTY()
TArray<FContainsInstancedProperty> InstancedPropertyArray;
UPROPERTY()
TArray<TWeakObjectPtr<UObject>> ObjectWrapperArray;
UPROPERTY()
TSet<FContainsInstancedProperty> InstancedPropertySet;
UPROPERTY()
TMap<FContainsInstancedProperty, TWeakObjectPtr<UObject>> InstancedPropertyToObjectWrapperMap;
UPROPERTY()
TMap<TWeakObjectPtr<UObject>, FContainsInstancedProperty> ObjectWrapperToInstancedPropertyMap;
UFUNCTION(BlueprintCallable, Category="Random")
void TestForNullPtrDefaults(UObject* Obj1 = NULL, UObject* Obj2 = nullptr, UObject* Obj3 = 0);
UFUNCTION()
void TestPassingArrayOfInterfaces(const TArray<TScriptInterface<ITestInterface> >& ArrayOfInterfaces);
UPROPERTY()
int32 Cpp11Init = 123;
UPROPERTY()
TArray<int> Cpp11BracedInit { 1, 2, 3 };
UPROPERTY()
TArray<FVector4> Cpp11NestedBracedInit { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
UPROPERTY()
int RawInt;
UPROPERTY()
unsigned int RawUint;
UFUNCTION()
void FuncTakingRawInts(int Signed, unsigned int Unsigned);
UPROPERTY()
ECppEnum EnumProperty;
UPROPERTY()
TMap<int32, bool> TestMap;
UPROPERTY()
TSet<int32> TestSet;
UPROPERTY()
UObject* const ConstPointerProperty;
UPROPERTY()
FSimpleClassDelegate DelegateProperty;
UFUNCTION()
void CodeGenTestForEnumClasses(ECppEnum Val);
UFUNCTION(Category="Xyz", BlueprintCallable)
TArray<UClass*> ReturnArrayOfUClassPtrs();
UFUNCTION()
inline int32 InlineFunc1()
{
return FString("Hello").Len();
}
UFUNCTION()
FORCEINLINE int32 InlineFunc2()
{
return FString("Hello").Len();
}
UFUNCTION()
FORCEINLINE_WHATEVER int32 InlineFunc3()
{
return FString("Hello").Len();
}
UFUNCTION()
FORCENOINLINE int32 NoInlineFunc()
{
return FString("Hello").Len();
}
UFUNCTION()
int32 InlineFuncWithCppMacros()
#if CPP
{
return FString("Hello").Len();
}
#endif
#if WITH_EDITOR
UFUNCTION(BlueprintCallable, Category = "MyEditorOnlyFunction")
void MyEditorOnlyFunction();
#endif
UFUNCTION(BlueprintNativeEvent, Category="Game")
UClass* BrokenReturnTypeForFunction();
UEnum* SomeFunc() const;
};
UCLASS()
class UDocumentedBaseObject : public UObject
{
GENERATED_BODY()
public:
UFUNCTION()
virtual void UndocumentedMethod();
// Duplicate tooltip
UPROPERTY()
bool bFlagA;
// Duplicate tooltip
UPROPERTY()
bool bFlagB;
};
/**
* A test object to validate the DocumentationPolicy validation.
*/
UCLASS(meta = (DocumentationPolicy = "Strict"))
class UDocumentedTestObject : public UDocumentedBaseObject
{
GENERATED_BODY()
public:
/**
* A float member on this class.
*/
UPROPERTY(meta = (UIMin = "0.0", UIMax = "1.0"))
float Member;
/**
* Tests the documentation policy
* @param bFlag If set to true, a flag is set to true
* @param Range The range of the results.
*/
UFUNCTION()
void TestFunction(bool bFlag, float Range);
/**
* Tests the documentation policy (2)
* @param bFlag If set to true, a flag is set to true
* @param Range The range of the results.
*/
UFUNCTION()
void TestFunction2(bool bFlag, float Range);
};
PRAGMA_ENABLE_DEPRECATION_WARNINGS