KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
Karma::FFieldVariant Class Reference

Special container that can hold either UObject or FField. More...

#include <Field.h>

Public Member Functions

 FFieldVariant ()
 Constructor.
 
 FFieldVariant (const FField *InField)
 Overloaded constructor (FField)
 
template<typename T, decltype(ImplicitConv< const UObject * >(std::declval< T >())) * = nullptr>
 FFieldVariant (T &&InObject)
 Overloaded template constructor (UObject)
 
bool IsUObject () const
 Getter for bIsUobject.
 
bool IsValid () const
 Maybe sees if UObject is being held.
 
bool IsValidLowLevel () const
 
 operator bool () const
 A boolean conversion operator for the class https://en.cppreference.com/w/cpp/language/cast_operator.
 
bool IsA (const UClass *InClass) const
 
bool IsA (const FFieldClass *InClass) const
 
template<typename T>
bool IsA () const
 
UObjectToUObject () const
 Getter for UObject if possible.
 
FFieldToField () const
 Getter for FField if possible.
 
FORCEINLINE FFieldToFieldUnsafe () const
 
FORCEINLINE UObjectToUObjectUnsafe () const
 
void * GetRawPointer () const
 
FFieldVariant GetOwnerVariant () const
 
UClassGetOwnerClass () const
 
const std::string & GetFullName () const
 
const std::string & GetPathName () const
 
const std::string & GetName () const
 
const std::string & GetClassName () const
 
const std::string & GetFName () const
 
bool IsNative () const
 
bool operator== (const FFieldVariant &Other) const
 
bool operator!= (const FFieldVariant &Other) const
 

Detailed Description

Special container that can hold either UObject or FField.

Exposes common interface of FFields and UObjects for easier transition from UProperties to FProperties. DO NOT ABUSE. IDEALLY THIS SHOULD ONLY BE FFIELD INTERNAL STRUCTURE FOR HOLDING A POINTER TO THE OWNER OF AN FFIELD.

Remarks
Seems like data structure for reflection system

Constructor & Destructor Documentation

◆ FFieldVariant() [1/3]

Karma::FFieldVariant::FFieldVariant ( )
inline

Constructor.

Since
Karma 1.0.0

◆ FFieldVariant() [2/3]

Karma::FFieldVariant::FFieldVariant ( const FField * InField)
inline

Overloaded constructor (FField)

Parameters
InFieldThe FField to initialize the union Container with
Since
Karma 1.0.0

◆ FFieldVariant() [3/3]

template<typename T, decltype(ImplicitConv< const UObject * >(std::declval< T >())) * = nullptr>
Karma::FFieldVariant::FFieldVariant ( T && InObject)
inline

Overloaded template constructor (UObject)

Parameters
InObjectThe UObject to initialize the union Container with
Since
Karma 1.0.0

Member Function Documentation

◆ GetRawPointer()

void * Karma::FFieldVariant::GetRawPointer ( ) const
inline

Seems like ToFieldUnsafe.

Todo
Ponder how this is different from previous similar function

◆ IsA() [1/2]

bool Karma::FFieldVariant::IsA ( const FFieldClass * InClass) const
Todo
Function definition is missing

◆ IsA() [2/2]

bool Karma::FFieldVariant::IsA ( const UClass * InClass) const
Todo
Function definition is missing

◆ IsUObject()

bool Karma::FFieldVariant::IsUObject ( ) const
inline

Getter for bIsUobject.

Returns
true if Container holds UObject only
Since
Karma 1.0.0

◆ IsValid()

bool Karma::FFieldVariant::IsValid ( ) const
inline

Maybe sees if UObject is being held.

Todo
Ponder over the routine
Since
Karma 1.0.0

◆ IsValidLowLevel()

bool Karma::FFieldVariant::IsValidLowLevel ( ) const

No clue

Warning
May result in linking error because function not defined
Todo
Function definition is missing

◆ operator bool()

Karma::FFieldVariant::operator bool ( ) const
inline

A boolean conversion operator for the class https://en.cppreference.com/w/cpp/language/cast_operator.

Since
Karma 1.0.0

◆ ToField()

FField * Karma::FFieldVariant::ToField ( ) const
inline

Getter for FField if possible.

Returns
FField reference
Since
Karma 1.0.0

◆ ToFieldUnsafe()

FORCEINLINE FField * Karma::FFieldVariant::ToFieldUnsafe ( ) const
inline

FOR INTERNAL USE ONLY: Function that returns the owner as FField without checking if it's actually an FField

Todo
Ponder
Since
Karma 1.0.0

◆ ToUObject()

UObject * Karma::FFieldVariant::ToUObject ( ) const
inline

Getter for UObject if possible.

Returns
UObject reference
Since
Karma 1.0.0

◆ ToUObjectUnsafe()

FORCEINLINE UObject * Karma::FFieldVariant::ToUObjectUnsafe ( ) const
inline

FOR INTERNAL USE ONLY: Function that returns the owner as UObject without checking if it's actually a UObject

Since
Karma 1.0.0

The documentation for this class was generated from the following file: