XII Release 0.1.0
Loading...
Searching...
No Matches
xiiMemberArrayReadOnlyProperty< Class, Container, Type > Class Template Reference

Read only version of xiiMemberArrayProperty that does not call any functions that modify the array. This is needed to reflect xiiArrayPtr members. More...

#include <ArrayProperty.h>

Inheritance diagram for xiiMemberArrayReadOnlyProperty< Class, Container, Type >:
[legend]

Public Types

using RealType = typename xiiTypeTraits<Type>::NonConstReferenceType
 
using GetConstContainerFunc = const Container& (*)(const Class* pInstance)
 

Public Member Functions

 xiiMemberArrayReadOnlyProperty (xiiStringView sPropertyName, GetConstContainerFunc constGetter)
 
virtual xiiUInt32 GetCount (const void *pInstance) const override
 Returns number of elements.
 
virtual void GetValue (const void *pInstance, xiiUInt32 uiIndex, void *pObject) const override
 Writes element at index uiIndex to the target of pObject.
 
virtual void SetValue (void *pInstance, xiiUInt32 uiIndex, const void *pObject) const override
 Writes the target of pObject to the element at index uiIndex.
 
virtual void Insert (void *pInstance, xiiUInt32 uiIndex, const void *pObject) const override
 Inserts the target of pObject into the array at index uiIndex.
 
virtual void Remove (void *pInstance, xiiUInt32 uiIndex) const override
 Removes the element in the array at index uiIndex.
 
virtual void Clear (void *pInstance) const override
 Clears the array.
 
virtual void SetCount (void *pInstance, xiiUInt32 uiCount) const override
 Resizes the array to uiCount.
 
- Public Member Functions inherited from xiiTypedArrayProperty< xiiTypeTraits< Type >::NonConstReferenceType >
 xiiTypedArrayProperty (xiiStringView sPropertyName)
 
virtual const xiiRTTIGetSpecificType () const override
 Returns the type information of the constant property. Use this to cast this property to a specific version of xiiTypedConstantProperty.
 
- Public Member Functions inherited from xiiAbstractArrayProperty
 xiiAbstractArrayProperty (xiiStringView sPropertyName)
 Passes the property name through to xiiAbstractProperty.
 
virtual xiiPropertyCategory::Enum GetCategory () const override
 Returns xiiPropertyCategory::Array.
 
virtual void * GetValuePointer (void *pInstance, xiiUInt32 uiIndex) const
 
- 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.
 
xiiStringView GetPropertyName () const
 Returns the name of the property.
 
const xiiBitflags< xiiPropertyFlags > & GetFlags () const
 Returns the flags of the property.
 
xiiAbstractPropertyAddFlags (xiiBitflags< xiiPropertyFlags > flags)
 Adds flags to the property. Returns itself to allow to be called during initialization.
 
xiiAbstractPropertyAddAttributes (xiiPropertyAttribute *pAttrib1, xiiPropertyAttribute *pAttrib2=nullptr, xiiPropertyAttribute *pAttrib3=nullptr, xiiPropertyAttribute *pAttrib4=nullptr, xiiPropertyAttribute *pAttrib5=nullptr, xiiPropertyAttribute *pAttrib6=nullptr)
 Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'.
 
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< xiiPropertyFlagsm_Flags
 
xiiStringView m_sPropertyName
 
xiiHybridArray< const xiiPropertyAttribute *, 2U, xiiStaticAllocatorWrapperm_Attributes
 

Detailed Description

template<typename Class, typename Container, typename Type>
class xiiMemberArrayReadOnlyProperty< Class, Container, Type >

Read only version of xiiMemberArrayProperty that does not call any functions that modify the array. This is needed to reflect xiiArrayPtr members.

Member Function Documentation

◆ Clear()

template<typename Class, typename Container, typename Type>
virtual void xiiMemberArrayReadOnlyProperty< Class, Container, Type >::Clear ( void * pInstance) const
inlineoverridevirtual

Clears the array.

Implements xiiAbstractArrayProperty.

◆ GetCount()

template<typename Class, typename Container, typename Type>
virtual xiiUInt32 xiiMemberArrayReadOnlyProperty< Class, Container, Type >::GetCount ( const void * pInstance) const
inlineoverridevirtual

Returns number of elements.

Implements xiiAbstractArrayProperty.

◆ GetValue()

template<typename Class, typename Container, typename Type>
virtual void xiiMemberArrayReadOnlyProperty< Class, Container, Type >::GetValue ( const void * pInstance,
xiiUInt32 uiIndex,
void * pObject ) const
inlineoverridevirtual

Writes element at index uiIndex to the target of pObject.

Implements xiiAbstractArrayProperty.

◆ Insert()

template<typename Class, typename Container, typename Type>
virtual void xiiMemberArrayReadOnlyProperty< Class, Container, Type >::Insert ( void * pInstance,
xiiUInt32 uiIndex,
const void * pObject ) const
inlineoverridevirtual

Inserts the target of pObject into the array at index uiIndex.

Implements xiiAbstractArrayProperty.

◆ Remove()

template<typename Class, typename Container, typename Type>
virtual void xiiMemberArrayReadOnlyProperty< Class, Container, Type >::Remove ( void * pInstance,
xiiUInt32 uiIndex ) const
inlineoverridevirtual

Removes the element in the array at index uiIndex.

Implements xiiAbstractArrayProperty.

◆ SetCount()

template<typename Class, typename Container, typename Type>
virtual void xiiMemberArrayReadOnlyProperty< Class, Container, Type >::SetCount ( void * pInstance,
xiiUInt32 uiCount ) const
inlineoverridevirtual

Resizes the array to uiCount.

Implements xiiAbstractArrayProperty.

◆ SetValue()

template<typename Class, typename Container, typename Type>
virtual void xiiMemberArrayReadOnlyProperty< Class, Container, Type >::SetValue ( void * pInstance,
xiiUInt32 uiIndex,
const void * pObject ) const
inlineoverridevirtual

Writes the target of pObject to the element at index uiIndex.

Implements xiiAbstractArrayProperty.


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