ezEngine  Milestone 9
ezConstructorFunctionProperty< CLASS, Args > Class Template Reference
Inheritance diagram for ezConstructorFunctionProperty< CLASS, Args >:

Public Member Functions

virtual ezFunctionType::Enum GetFunctionType () const override
 Returns the type of function, see ezFunctionPropertyType::Enum.
 
template<std::size_t... I>
void ExecuteImpl (ezTraitInt< 1 >, ezVariant &returnValue, ezArrayPtr< ezVariant > arguments, std::index_sequence< I... >) const
 
template<std::size_t... I>
void ExecuteImpl (ezTraitInt< 0 >, ezVariant &returnValue, ezArrayPtr< ezVariant > arguments, std::index_sequence< I... >) const
 
virtual void Execute (void *pInstance, ezArrayPtr< ezVariant > arguments, ezVariant &returnValue) const override
 Calls the function. Provide the instance on which the function is supposed to be called. More...
 
- Public Member Functions inherited from ezTypedFunctionProperty< CLASS *, Args... >
 ezTypedFunctionProperty (const char *szPropertyName)
 
virtual const ezRTTIGetReturnType () const override
 Returns the type of the return value.
 
virtual ezBitflags< ezPropertyFlagsGetReturnFlags () const override
 Returns property flags of the return value.
 
virtual ezUInt32 GetArgumentCount () const override
 Returns the number of arguments.
 
const ezRTTIGetParameterTypeImpl (ezUInt32 uiParamIndex, std::index_sequence< I... >) const
 
virtual const ezRTTIGetArgumentType (ezUInt32 uiParamIndex) const override
 Returns the type of the given argument.
 
ezBitflags< ezPropertyFlagsGetParameterFlagsImpl (ezUInt32 uiParamIndex, std::index_sequence< I... >) const
 
virtual ezBitflags< ezPropertyFlagsGetArgumentFlags (ezUInt32 uiParamIndex) const override
 Returns the property flags of the given argument.
 
- Public Member Functions inherited from ezAbstractFunctionProperty
 ezAbstractFunctionProperty (const char *szPropertyName)
 Passes the property name through to ezAbstractProperty.
 
virtual ezPropertyCategory::Enum GetCategory () const override
 Returns the category of this property. Cast this property to the next higher type for more information.
 
virtual const ezRTTIGetSpecificType () const override
 Returns the type information of the constant property. Use this to cast this property to a specific version of ezTypedConstantProperty.
 
- Public Member Functions inherited from ezAbstractProperty
 ezAbstractProperty (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 ezBitflags< ezPropertyFlags > & GetFlags () const
 Returns the flags of the property.
 
ezAbstractPropertyAddFlags (ezBitflags< ezPropertyFlags > flags)
 Adds flags to the property. Returns itself to allow to be called during initialization.
 
ezAbstractPropertyAddAttributes (ezPropertyAttribute *pAttrib1, ezPropertyAttribute *pAttrib2=nullptr, ezPropertyAttribute *pAttrib3=nullptr, ezPropertyAttribute *pAttrib4=nullptr, ezPropertyAttribute *pAttrib5=nullptr, ezPropertyAttribute *pAttrib6=nullptr)
 Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'.
 
const ezArrayPtr< ezPropertyAttribute *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

- Protected Attributes inherited from ezAbstractProperty
ezBitflags< ezPropertyFlagsm_Flags
 
const char * m_szPropertyName
 
ezHybridArray< ezPropertyAttribute *, 2, ezStaticAllocatorWrapperm_Attributes
 

Member Function Documentation

◆ Execute()

template<class CLASS , class... Args>
virtual void ezConstructorFunctionProperty< CLASS, Args >::Execute ( void *  pInstance,
ezArrayPtr< ezVariant arguments,
ezVariant returnValue 
) const
inlineoverridevirtual

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 ezEnum / ezBitflags is used, value must be provided as ezInt64. 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 ezVariant, in which case it is impossible to pass along a nullptr.

Implements ezAbstractFunctionProperty.


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