![]() |
XII Release 0.1.0
|
[internal] An implementation of xiiTypedEnumProperty that uses custom getter / setter functions to access a bitflags property. More...
#include <BitflagsProperty.h>
Public Types | |
| using | RealType = typename xiiTypeTraits<Type>::NonConstReferenceType |
| using | GetterFunc = Type (Class::*)() const |
| using | SetterFunc = void (Class::*)(Type value) |
Public Member Functions | |
| xiiBitflagsAccessorProperty (xiiStringView sPropertyName, GetterFunc getter, SetterFunc setter) | |
| Constructor. | |
| virtual void * | GetPropertyPointer (const void *pInstance) const override |
| virtual xiiInt64 | GetValue (const void *pInstance) const override |
| Returns the value of the property. Pass the instance pointer to the surrounding class along. | |
| virtual void | SetValue (void *pInstance, xiiInt64 value) const override |
| Public Member Functions inherited from xiiTypedEnumProperty< EnumType > | |
| xiiTypedEnumProperty (xiiStringView sPropertyName) | |
| Passes the property name through to xiiAbstractEnumerationProperty. | |
| virtual const xiiRTTI * | GetSpecificType () const override |
| Public Member Functions inherited from xiiAbstractEnumerationProperty | |
| xiiAbstractEnumerationProperty (xiiStringView sPropertyName) | |
| Passes the property name through to xiiAbstractMemberProperty. | |
| 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. | |
| 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. | |
| 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 |
[internal] An implementation of xiiTypedEnumProperty that uses custom getter / setter functions to access a bitflags property.
|
inlineoverridevirtual |
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).
You need to pass the pointer to an object on which you are operating. This function is mostly of interest when the property itself is a compound type (a struct or class). If it is a simple type (int, float, etc.) it doesn't make much sense to retrieve the pointer.
For example GetSpecificType() might return that a property is of type xiiVec3. In that case one might either stop and just use the code to handle xiiVec3 types, or one might continue and enumerate all sub-properties (x, y and z) as well.
Implements xiiAbstractMemberProperty.
|
inlineoverridevirtual |
Returns the value of the property. Pass the instance pointer to the surrounding class along.
Implements xiiAbstractEnumerationProperty.
|
inlineoverridevirtual |
Modifies the value of the property. Pass the instance pointer to the surrounding class along.
Implements xiiAbstractEnumerationProperty.