Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
FExpressionNode Class Reference

#include <ExpressionParserTypes.h>

+ Inheritance diagram for FExpressionNode:
+ Collaboration diagram for FExpressionNode:

Public Member Functions

 FExpressionNode ()
 
template<typename T >
 FExpressionNode (T In, typename TEnableIf<!TPointerIsConvertibleFromTo< T, FExpressionNode >::Value >::Type *=nullptr)
 
 ~FExpressionNode ()
 
 FExpressionNode (FExpressionNode &&In)
 
FExpressionNodeoperator= (FExpressionNode &&In)
 
const FGuidGetTypeId () const
 
template<typename T >
const TCast () const
 
FExpressionNode Copy () const
 

Private Member Functions

Impl::IExpressionNodeStorageGetData ()
 
const Impl::IExpressionNodeStorageGetData () const
 
- Private Member Functions inherited from FNoncopyable
 FNoncopyable ()
 
 ~FNoncopyable ()
 

Private Attributes

FGuid TypeId
 
uint8 InlineBytes [MaxStackAllocationSize]
 

Static Private Attributes

static constexpr uint32 MaxStackAllocationSize = 64 - sizeof(FGuid)
 

Detailed Description

Primitive types should only be declared once inside the codebase to avoid conflicts A node in an expression. Can be constructed from any C++ type that has a corresponding DEFINE_EXPRESSION_NODE_TYPE. Evaluation behaviour (unary/binary operator etc) is defined in the expression grammar, rather than the type itself.

Definition at line 179 of file ExpressionParserTypes.h.

Constructor & Destructor Documentation

◆ FExpressionNode() [1/3]

FExpressionNode::FExpressionNode ( )
inline

Default constructor

Definition at line 184 of file ExpressionParserTypes.h.

+ Here is the call graph for this function:

◆ FExpressionNode() [2/3]

template<typename T >
FExpressionNode::FExpressionNode ( T In,
typename TEnableIf<!TPointerIsConvertibleFromTo< T, FExpressionNode >::Value >::Type * = nullptr )

Construction from client expression data type

Definition at line 168 of file ExpressionParserTypes.inl.

◆ ~FExpressionNode()

FExpressionNode::~FExpressionNode ( )

◆ FExpressionNode() [3/3]

FExpressionNode::FExpressionNode ( FExpressionNode && In)

Move construction/assignment

Member Function Documentation

◆ Cast()

template<typename T >
const T * FExpressionNode::Cast ( ) const

Cast this node to the specified type. Will return nullptr if the types do not match.

Definition at line 176 of file ExpressionParserTypes.inl.

◆ Copy()

FExpressionNode FExpressionNode::Copy ( ) const

Copy this node and its wrapped data

◆ GetData() [1/2]

Impl::IExpressionNodeStorage * FExpressionNode::GetData ( )
private

Helper accessor to the data interface. Returns null for empty containers.

◆ GetData() [2/2]

const Impl::IExpressionNodeStorage * FExpressionNode::GetData ( ) const
private

◆ GetTypeId()

const FGuid & FExpressionNode::GetTypeId ( ) const

Get the type identifier of this node

◆ operator=()

FExpressionNode & FExpressionNode::operator= ( FExpressionNode && In)

Member Data Documentation

◆ InlineBytes

uint8 FExpressionNode::InlineBytes[MaxStackAllocationSize]
private

Definition at line 220 of file ExpressionParserTypes.h.

◆ MaxStackAllocationSize

constexpr uint32 FExpressionNode::MaxStackAllocationSize = 64 - sizeof(FGuid)
staticconstexprprivate

The maximum size of type we will allow allocation on the stack (for efficiency). Anything larger will be allocated on the heap.

Definition at line 212 of file ExpressionParserTypes.h.

◆ TypeId

FGuid FExpressionNode::TypeId
private

TypeID - 16 bytes

Definition at line 219 of file ExpressionParserTypes.h.


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