XII Release 0.1.0
Loading...
Searching...
No Matches
xiiAbstractEnumerationProperty Class Referenceabstract

#include <EnumProperty.h>

Inheritance diagram for xiiAbstractEnumerationProperty:
[legend]

Public Member Functions

 xiiAbstractEnumerationProperty (xiiStringView sPropertyName)
 Passes the property name through to xiiAbstractMemberProperty.
virtual xiiInt64 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, xiiInt64 value) const =0
virtual void GetValuePtr (const void *pInstance, void *pObject) const override
virtual void SetValuePtr (void *pInstance, const void *pObject) const override
Public Member Functions inherited from xiiAbstractMemberProperty
 xiiAbstractMemberProperty (xiiStringView sPropertyName)
 Passes the property name through to xiiAbstractProperty.
virtual xiiPropertyCategory::Enum GetCategory () const override
 Returns xiiPropertyCategory::Member.
virtual void * GetPropertyPointer (const void *pInstance) const =0
Public Member Functions inherited from xiiAbstractProperty
 xiiAbstractProperty (xiiStringView sPropertyName)
 The constructor must get the name of the property. The string must be a compile-time constant.
virtual ~xiiAbstractProperty ()
 Copyright (c) Theophilus Eriata. All Rights Reserved.
xiiStringView GetPropertyName () const
 Returns the name of the property.
virtual const xiiRTTI * GetSpecificType () const =0
const xiiBitflags< xiiPropertyFlags > & GetFlags () const
 Returns the flags of the property.
xiiAbstractProperty * AddFlags (xiiBitflags< xiiPropertyFlags > flags)
 Adds flags to the property. Returns itself to allow to be called during initialization.
xiiAbstractProperty * AddAttributes (xiiPropertyAttribute *pAttrib1, xiiPropertyAttribute *pAttrib2=nullptr, xiiPropertyAttribute *pAttrib3=nullptr, xiiPropertyAttribute *pAttrib4=nullptr, xiiPropertyAttribute *pAttrib5=nullptr, xiiPropertyAttribute *pAttrib6=nullptr)
xiiArrayPtr< const xiiPropertyAttribute *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 xiiAbstractProperty
xiiBitflags< xiiPropertyFlags > m_Flags
xiiStringView m_sPropertyName
xiiHybridArray< const xiiPropertyAttribute *, 2U, xiiStaticAllocatorWrapper > m_Attributes

Detailed Description

The base class for enum and bitflags member properties.

Cast any property whose type derives from xiiEnumBase or xiiBitflagsBase class to access its value.

Member Function Documentation

◆ GetValue()

virtual xiiInt64 xiiAbstractEnumerationProperty::GetValue ( const void * pInstance) const
pure virtual

◆ GetValuePtr()

virtual void xiiAbstractEnumerationProperty::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 xiiAbstractMemberProperty.

◆ SetValue()

virtual void xiiAbstractEnumerationProperty::SetValue ( void * pInstance,
xiiInt64 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 xiiBitflagsAccessorProperty< Class, EnumType, Type >, xiiBitflagsMemberProperty< Class, EnumType, Type >, xiiEnumAccessorProperty< Class, EnumType, Type >, and xiiEnumMemberProperty< Class, EnumType, Type >.

◆ SetValuePtr()

virtual void xiiAbstractEnumerationProperty::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 xiiAbstractMemberProperty.


The documentation for this class was generated from the following file:
  • /home/runner/work/XII/XII/Source/Engine/Foundation/Reflection/Implementation/EnumProperty.h