Plasma Engine  2.0
Loading...
Searching...
No Matches
plAbstractEnumerationProperty Class Referenceabstract

The base class for enum and bitflags member properties. More...

#include <EnumProperty.h>

Inheritance diagram for plAbstractEnumerationProperty:

Public Member Functions

 plAbstractEnumerationProperty (const char *szPropertyName)
 Passes the property name through to plAbstractMemberProperty.
 
virtual plInt64 GetValue (const void *pInstance) const =0
 Returns the value of the property. Pass the instance pointer to the surrounding class along.
 
virtual void SetValue (void *pInstance, plInt64 value) const =0
 Modifies the value of the property. Pass the instance pointer to the surrounding class along.
 
virtual void GetValuePtr (const void *pInstance, void *pObject) const override
 Writes the value of this property in pInstance to pObject. pObject needs to point to an instance of this property's type.
 
virtual void SetValuePtr (void *pInstance, const void *pObject) const override
 Sets the value of pObject to the property in pInstance. pObject needs to point to an instance of this property's type.
 
- Public Member Functions inherited from plAbstractMemberProperty
 plAbstractMemberProperty (const char *szPropertyName)
 Passes the property name through to plAbstractProperty.
 
virtual plPropertyCategory::Enum GetCategory () const override
 Returns plPropertyCategory::Member.
 
virtual void * GetPropertyPointer (const void *pInstance) const =0
 Returns a pointer to the property data or nullptr. If a valid pointer is returned, that pointer and the information from GetSpecificType() can be used to step deeper into the type (if required).
 
- Public Member Functions inherited from plAbstractProperty
 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.
 
virtual const plRTTIGetSpecificType () const =0
 Returns the type information of the constant property. Use this to cast this property to a specific version of plTypedConstantProperty.
 
const plBitflags< plPropertyFlags > & GetFlags () const
 Returns the flags of the property.
 
plAbstractPropertyAddFlags (plBitflags< plPropertyFlags > flags)
 Adds flags to the property. Returns itself to allow to be called during initialization.
 
plAbstractPropertyAddAttributes (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

- Protected Attributes inherited from plAbstractProperty
plBitflags< plPropertyFlagsm_Flags
 
const char * m_szPropertyName
 
plHybridArray< const plPropertyAttribute *, 2, plStaticsAllocatorWrapperm_Attributes
 

Detailed Description

The base class for enum and bitflags member properties.

Cast any property whose type derives from plEnumBase or plBitflagsBase class to access its value.

Member Function Documentation

◆ GetValue()

virtual plInt64 plAbstractEnumerationProperty::GetValue ( const void * pInstance) const
pure virtual

◆ GetValuePtr()

virtual void plAbstractEnumerationProperty::GetValuePtr ( const void * pInstance,
void * out_pObject ) const
inlineoverridevirtual

Writes the value of this property in pInstance to pObject. pObject needs to point to an instance of this property's type.

Implements plAbstractMemberProperty.

◆ SetValue()

virtual void plAbstractEnumerationProperty::SetValue ( void * pInstance,
plInt64 value ) const
pure virtual

Modifies the value of the property. Pass the instance pointer to the surrounding class along.

Note
Make sure the property is not read-only before calling this, otherwise an assert will fire.

Implemented in plBitflagsAccessorProperty< Class, EnumType, Type >, plBitflagsMemberProperty< Class, EnumType, Type >, plEnumAccessorProperty< Class, EnumType, Type >, and plEnumMemberProperty< Class, EnumType, Type >.

◆ SetValuePtr()

virtual void plAbstractEnumerationProperty::SetValuePtr ( void * pInstance,
const void * pObject ) const
inlineoverridevirtual

Sets the value of pObject to the property in pInstance. pObject needs to point to an instance of this property's type.

Implements plAbstractMemberProperty.


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