![]() |
Plasma Engine
2.0
|
The base class for a property that represents a function. More...
#include <AbstractProperty.h>
Public Member Functions | |
plAbstractFunctionProperty (const char *szPropertyName) | |
Passes the property name through to plAbstractProperty. | |
virtual plPropertyCategory::Enum | GetCategory () const override |
Returns the category of this property. Cast this property to the next higher type for more information. | |
virtual plFunctionType::Enum | GetFunctionType () const =0 |
Returns the type of function, see plFunctionPropertyType::Enum. | |
virtual const plRTTI * | GetReturnType () const =0 |
Returns the type of the return value. | |
virtual plBitflags< plPropertyFlags > | GetReturnFlags () const =0 |
Returns property flags of the return value. | |
virtual plUInt32 | GetArgumentCount () const =0 |
Returns the number of arguments. | |
virtual const plRTTI * | GetArgumentType (plUInt32 uiParamIndex) const =0 |
Returns the type of the given argument. | |
virtual plBitflags< plPropertyFlags > | GetArgumentFlags (plUInt32 uiParamIndex) const =0 |
Returns the property flags of the given argument. | |
virtual void | Execute (void *pInstance, plArrayPtr< plVariant > arguments, plVariant &out_returnValue) const =0 |
Calls the function. Provide the instance on which the function is supposed to be called. | |
virtual const plRTTI * | GetSpecificType () const override |
Returns the type information of the constant property. Use this to cast this property to a specific version of plTypedConstantProperty. | |
plAbstractFunctionProperty * | AddFlags (plBitflags< plPropertyFlags > flags) |
Adds flags to the property. Returns itself to allow to be called during initialization. | |
plAbstractFunctionProperty * | AddAttributes (plPropertyAttribute *pAttrib1, plPropertyAttribute *pAttrib2=nullptr, plPropertyAttribute *pAttrib3=nullptr, plPropertyAttribute *pAttrib4=nullptr, plPropertyAttribute *pAttrib5=nullptr, plPropertyAttribute *pAttrib6=nullptr) |
Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'. | |
![]() | |
plAbstractProperty (const char *szPropertyName) | |
The constructor must get the name of the property. The string must be a compile-time constant. | |
const char * | GetPropertyName () const |
Returns the name of the property. | |
const plBitflags< plPropertyFlags > & | GetFlags () const |
Returns the flags of the property. | |
plAbstractProperty * | AddFlags (plBitflags< plPropertyFlags > flags) |
Adds flags to the property. Returns itself to allow to be called during initialization. | |
plAbstractProperty * | AddAttributes (plPropertyAttribute *pAttrib1, plPropertyAttribute *pAttrib2=nullptr, plPropertyAttribute *pAttrib3=nullptr, plPropertyAttribute *pAttrib4=nullptr, plPropertyAttribute *pAttrib5=nullptr, plPropertyAttribute *pAttrib6=nullptr) |
Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'. | |
plArrayPtr< const plPropertyAttribute *const > | GetAttributes () const |
Returns the array of property attributes. | |
template<typename Type > | |
const Type * | GetAttributeByType () const |
Returns the first attribute that derives from the given type, or nullptr if nothing is found. | |
Additional Inherited Members | |
![]() | |
plBitflags< plPropertyFlags > | m_Flags |
const char * | m_szPropertyName |
plHybridArray< const plPropertyAttribute *, 2, plStaticsAllocatorWrapper > | m_Attributes |
The base class for a property that represents a function.
|
pure virtual |
Calls the function. Provide the instance on which the function is supposed to be called.
arguments must be the size of GetArgumentCount, the following rules apply for both arguments and return value: Any standard type must be provided by value, even if it is a pointer to one. Types must match exactly, no ConvertTo is called. enum and bitflags are supported if plEnum / plBitflags is used, value must be provided as plInt64. Out values (&, *) are written back to the variant they were read from. Any class is provided by pointer, regardless of whether it is a pointer or not. The returnValue must only be valid if the return value is a ref or by value class. In that case returnValue must be a ptr to a valid class instance of the returned type. An invalid variant is equal to a nullptr, except for if the argument is of type plVariant, in which case it is impossible to pass along a nullptr.
Implemented in plConstructorFunctionProperty< CLASS, Args >, plFunctionProperty< R(*)(Args...)>, plFunctionProperty< R(CLASS::*)(Args...) const >, plFunctionProperty< R(CLASS::*)(Args...)>, plPhantomFunctionProperty, plScriptCoroutineFunctionProperty, and plVisualScriptFunctionProperty.
|
pure virtual |
Returns the number of arguments.
Implemented in plPhantomFunctionProperty, plScriptCoroutineFunctionProperty, plTypedFunctionProperty< R, Args >, plTypedFunctionProperty< CLASS *, Args... >, plTypedFunctionProperty< R, Args... >, and plVisualScriptFunctionProperty.
|
pure virtual |
Returns the property flags of the given argument.
Implemented in plPhantomFunctionProperty, plScriptCoroutineFunctionProperty, plTypedFunctionProperty< R, Args >, plTypedFunctionProperty< CLASS *, Args... >, plTypedFunctionProperty< R, Args... >, and plVisualScriptFunctionProperty.
|
pure virtual |
Returns the type of the given argument.
Implemented in plPhantomFunctionProperty, plScriptCoroutineFunctionProperty, plTypedFunctionProperty< R, Args >, plTypedFunctionProperty< CLASS *, Args... >, plTypedFunctionProperty< R, Args... >, and plVisualScriptFunctionProperty.
|
inlineoverridevirtual |
Returns the category of this property. Cast this property to the next higher type for more information.
Implements plAbstractProperty.
|
pure virtual |
Returns the type of function, see plFunctionPropertyType::Enum.
Implemented in plConstructorFunctionProperty< CLASS, Args >, plFunctionProperty< R(*)(Args...)>, plFunctionProperty< R(CLASS::*)(Args...) const >, plFunctionProperty< R(CLASS::*)(Args...)>, plPhantomFunctionProperty, plScriptCoroutineFunctionProperty, and plVisualScriptFunctionProperty.
|
pure virtual |
Returns property flags of the return value.
Implemented in plPhantomFunctionProperty, plScriptCoroutineFunctionProperty, plTypedFunctionProperty< R, Args >, plTypedFunctionProperty< CLASS *, Args... >, plTypedFunctionProperty< R, Args... >, and plVisualScriptFunctionProperty.
|
pure virtual |
Returns the type of the return value.
Implemented in plPhantomFunctionProperty, plScriptCoroutineFunctionProperty, plTypedFunctionProperty< R, Args >, plTypedFunctionProperty< CLASS *, Args... >, plTypedFunctionProperty< R, Args... >, and plVisualScriptFunctionProperty.
|
inlineoverridevirtual |
Returns the type information of the constant property. Use this to cast this property to a specific version of plTypedConstantProperty.
Implements plAbstractProperty.