kanzi::AbstractPropertyTypeDescriptor Class Referenceabstract

AbstractPropertyTypeDescriptor is used internally by the property type system to manage property types. More...

#include <kanzi/core/property/abstract_property_type_descriptor.hpp>

Inheritance diagram for kanzi::AbstractPropertyTypeDescriptor:
kanzi::PropertyTypeDescriptor< T >

Classes

struct  ModifierEntry
 
struct  ModifierStorage
 
struct  NotificationStorage
 
struct  PropertyStorage
 
struct  ValueModifier
 
struct  ValueSource
 
struct  ValueSourceEntry
 

Public Types

typedef unique_ptr< AbstractPropertyTypeDescriptorManagedDescriptor
 

Public Member Functions

 AbstractPropertyTypeDescriptor (FixedString name, uint32_t changeFlags, bool inherited, PropertyTypeEditorInfoSharedPtr editorInfo)
 
 AbstractPropertyTypeDescriptor (MetadataGeneratedName name, uint32_t changeFlags, bool inherited, PropertyTypeEditorInfoSharedPtr editorInfo)
 
virtual ~AbstractPropertyTypeDescriptor ()
 
const char * getName () const
 
const char * getUnqualifiedName () const
 
virtual kanzi::PropertyDataType getDataType () const =0
 
bool isInherited () const
 
uint32_t getChangeFlags () const
 
kanzi::PropertyTypeEditorInfoSharedPtr getEditorInfo () const
 
 KZ_STATIC_ASSERT (is_nothrow_move_constructible< ValueSourceEntry >::value,"Error")
 
 KZ_STATIC_ASSERT (KZ_IS_TRIVIALLY_COPYABLE< ValueSourceEntry >::value,"Error")
 
virtual ValueSourceconstructValueSource ()=0
 
virtual void destructValueSource (ValueSource *valueSource)=0
 
virtual ModifierStorageconstructModifierStorage ()=0
 
virtual void destructModifierStorage (ModifierStorage *modifierStorage)=0
 
virtual ValueSourcegetModifierValueSource (ModifierStorage *modifierStorage)=0
 
virtual void validateModifiers (PropertyObject &object, PropertyStorage &propertyStorage, PropertyNotificationReason reason)=0
 
virtual NotificationStorageconstructNotificationStorage ()=0
 
virtual void destructNotificationStorage (NotificationStorage *notificationStorage)=0
 
virtual void invokeGlobalNotificationHandlers (PropertyObject &object, ValueSource *finalValueSource, PropertyNotificationReason reason)=0
 
virtual void invokeNotificationHandlers (PropertyObject &object, ValueSource *finalValueSource, NotificationStorage *notificationStorage, PropertyNotificationReason reason)=0
 
virtual void copyValueSource (AbstractPropertyTypeDescriptor::ValueSource *dst, const AbstractPropertyTypeDescriptor::ValueSource *src)=0
 Copy value source with type corresponding to this descriptor. More...
 

Static Public Member Functions

static AbstractPropertyTypeDescriptorfindDescriptor (string_view name)
 Finds a fixed property type by name. More...
 
static void registerDescriptor (ManagedDescriptor descriptor)
 

Public Attributes

const char * m_name
 Name of the property type. More...
 
const char * m_unqualifiedName
 Unqualified name of the property type. More...
 
uint32_t m_flags
 Flags of property type. More...
 
uint32_t m_changeFlags
 Change flags set on an object where a property of this type is set. More...
 

Static Public Attributes

static const uint32_t s_inheritedFlag
 Bit flag to encode that the property type is inherited. More...
 
static const uint32_t s_managedStringFlag
 Bit flag to encode that the name of the property type is a local copy. More...
 
static const uint32_t s_inheritedMask
 Bit mask to extract inherited flag from m_flags. More...
 

Detailed Description

AbstractPropertyTypeDescriptor is used internally by the property type system to manage property types.

You should use PropertyType, DynamicPropertyType and AbstractPropertyType classes if you want to get or set properties.

Member Typedef Documentation

Constructor & Destructor Documentation

kanzi::AbstractPropertyTypeDescriptor::AbstractPropertyTypeDescriptor ( FixedString  name,
uint32_t  changeFlags,
bool  inherited,
PropertyTypeEditorInfoSharedPtr  editorInfo 
)
explicit
kanzi::AbstractPropertyTypeDescriptor::AbstractPropertyTypeDescriptor ( MetadataGeneratedName  name,
uint32_t  changeFlags,
bool  inherited,
PropertyTypeEditorInfoSharedPtr  editorInfo 
)
explicit
virtual kanzi::AbstractPropertyTypeDescriptor::~AbstractPropertyTypeDescriptor ( )
virtual

Member Function Documentation

const char* kanzi::AbstractPropertyTypeDescriptor::getName ( ) const
inline
const char* kanzi::AbstractPropertyTypeDescriptor::getUnqualifiedName ( ) const
inline
virtual kanzi::PropertyDataType kanzi::AbstractPropertyTypeDescriptor::getDataType ( ) const
pure virtual
bool kanzi::AbstractPropertyTypeDescriptor::isInherited ( ) const
inline
uint32_t kanzi::AbstractPropertyTypeDescriptor::getChangeFlags ( ) const
inline
kanzi::PropertyTypeEditorInfoSharedPtr kanzi::AbstractPropertyTypeDescriptor::getEditorInfo ( ) const
inline
kanzi::AbstractPropertyTypeDescriptor::KZ_STATIC_ASSERT ( is_nothrow_move_constructible< ValueSourceEntry >::value  ,
"Error"   
)
kanzi::AbstractPropertyTypeDescriptor::KZ_STATIC_ASSERT ( KZ_IS_TRIVIALLY_COPYABLE< ValueSourceEntry >::value  ,
"Error"   
)
virtual ValueSource* kanzi::AbstractPropertyTypeDescriptor::constructValueSource ( )
pure virtual
virtual void kanzi::AbstractPropertyTypeDescriptor::destructValueSource ( ValueSource valueSource)
pure virtual
virtual ModifierStorage* kanzi::AbstractPropertyTypeDescriptor::constructModifierStorage ( )
pure virtual
virtual void kanzi::AbstractPropertyTypeDescriptor::destructModifierStorage ( ModifierStorage modifierStorage)
pure virtual
virtual ValueSource* kanzi::AbstractPropertyTypeDescriptor::getModifierValueSource ( ModifierStorage modifierStorage)
pure virtual
virtual void kanzi::AbstractPropertyTypeDescriptor::validateModifiers ( PropertyObject object,
PropertyStorage propertyStorage,
PropertyNotificationReason  reason 
)
pure virtual
virtual NotificationStorage* kanzi::AbstractPropertyTypeDescriptor::constructNotificationStorage ( )
pure virtual
virtual void kanzi::AbstractPropertyTypeDescriptor::destructNotificationStorage ( NotificationStorage notificationStorage)
pure virtual
virtual void kanzi::AbstractPropertyTypeDescriptor::invokeGlobalNotificationHandlers ( PropertyObject object,
ValueSource finalValueSource,
PropertyNotificationReason  reason 
)
pure virtual
virtual void kanzi::AbstractPropertyTypeDescriptor::invokeNotificationHandlers ( PropertyObject object,
ValueSource finalValueSource,
NotificationStorage notificationStorage,
PropertyNotificationReason  reason 
)
pure virtual
virtual void kanzi::AbstractPropertyTypeDescriptor::copyValueSource ( AbstractPropertyTypeDescriptor::ValueSource dst,
const AbstractPropertyTypeDescriptor::ValueSource src 
)
pure virtual

Copy value source with type corresponding to this descriptor.

Parameters
dstDestination value source.
srcSource value source.

Implemented in kanzi::PropertyTypeDescriptor< T >.

static AbstractPropertyTypeDescriptor* kanzi::AbstractPropertyTypeDescriptor::findDescriptor ( string_view  name)
static

Finds a fixed property type by name.

static void kanzi::AbstractPropertyTypeDescriptor::registerDescriptor ( ManagedDescriptor  descriptor)
static

Member Data Documentation

const char* kanzi::AbstractPropertyTypeDescriptor::m_name

Name of the property type.

const char* kanzi::AbstractPropertyTypeDescriptor::m_unqualifiedName

Unqualified name of the property type.

uint32_t kanzi::AbstractPropertyTypeDescriptor::m_flags

Flags of property type.

uint32_t kanzi::AbstractPropertyTypeDescriptor::m_changeFlags

Change flags set on an object where a property of this type is set.

const uint32_t kanzi::AbstractPropertyTypeDescriptor::s_inheritedFlag
static

Bit flag to encode that the property type is inherited.

const uint32_t kanzi::AbstractPropertyTypeDescriptor::s_managedStringFlag
static

Bit flag to encode that the name of the property type is a local copy.

const uint32_t kanzi::AbstractPropertyTypeDescriptor::s_inheritedMask
static

Bit mask to extract inherited flag from m_flags.


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