Kanzi 3.9.10
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:
[legend]

Classes

struct  ModifierEntry
 
struct  ModifierStorage
 
struct  NotificationStorage
 
struct  PropertyStorage
 
class  RawValueSourceOwner
 Owner for raw value source pointers. More...
 
struct  ValueModifier
 
struct  ValueSource
 
struct  ValueSourceEntry
 Entry pointing to value sources. More...
 
class  ValueSourceOwner
 Value source owner abstracts the owner pointer of a value source. More...
 

Public Types

typedef unique_ptr< AbstractPropertyTypeDescriptorManagedDescriptor
 
typedef unique_ptr< ValueSourceOwnerValueSourceOwnerPtr
 ValueSourceOwner unique pointer type.
 

Public Member Functions

 AbstractPropertyTypeDescriptor (FixedString name, uint32_t changeFlags, bool inherited, PropertyTypeEditorInfoSharedPtr editorInfo)
 
 AbstractPropertyTypeDescriptor (MetadataGeneratedName name, uint32_t changeFlags, bool inherited, PropertyTypeEditorInfoSharedPtr editorInfo)
 
virtual ModifierStorageconstructModifierStorage ()=0
 
virtual NotificationStorageconstructNotificationStorage ()=0
 
virtual ValueSourceconstructValueSource ()=0
 
virtual void copyValueSource (AbstractPropertyTypeDescriptor::ValueSource *dst, const AbstractPropertyTypeDescriptor::ValueSource *src)=0
 Copy value source with type corresponding to this descriptor.
 
virtual void destructModifierStorage (ModifierStorage *modifierStorage)=0
 
virtual void destructNotificationStorage (NotificationStorage *notificationStorage)=0
 
virtual void destructValueSource (ValueSource *valueSource)=0
 
uint32_t getChangeFlags () const
 
virtual kanzi::PropertyDataType getDataType () const =0
 
kanzi::PropertyTypeEditorInfoSharedPtr getEditorInfo () const
 Gets editor info for the property type.
 
virtual ValueSourcegetModifierValueSource (ModifierStorage *modifierStorage)=0
 
const chargetName () const
 
const chargetUnqualifiedName () const
 
virtual void invokeGlobalNotificationHandlers (PropertyObject &object, ValueSource *finalValueSource, PropertyNotificationReason reason)=0
 
virtual void invokeNotificationHandlers (PropertyObject &object, ValueSource *finalValueSource, NotificationStorage *notificationStorage, PropertyNotificationReason reason)=0
 
bool isInherited () const
 
virtual void validateModifiers (PropertyObject &object, PropertyStorage &propertyStorage, PropertyNotificationReason reason)=0
 
virtual ~AbstractPropertyTypeDescriptor ()
 

Static Public Member Functions

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

Public Attributes

uint32_t m_changeFlags
 Change flags set on an object where a property of this type is set.
 
uint32_t m_flags
 Flags of property type.
 
const charm_name
 Name of the property type.
 
const charm_unqualifiedName
 Unqualified name of the property type.
 

Static Public Attributes

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

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

◆ ValueSourceOwnerPtr

◆ ManagedDescriptor

Constructor & Destructor Documentation

◆ AbstractPropertyTypeDescriptor() [1/2]

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

◆ AbstractPropertyTypeDescriptor() [2/2]

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

◆ ~AbstractPropertyTypeDescriptor()

virtual kanzi::AbstractPropertyTypeDescriptor::~AbstractPropertyTypeDescriptor ( )
virtual

Member Function Documentation

◆ getName()

const char * kanzi::AbstractPropertyTypeDescriptor::getName ( ) const
inline

◆ getUnqualifiedName()

const char * kanzi::AbstractPropertyTypeDescriptor::getUnqualifiedName ( ) const
inline

◆ getDataType()

virtual kanzi::PropertyDataType kanzi::AbstractPropertyTypeDescriptor::getDataType ( ) const
pure virtual

◆ isInherited()

bool kanzi::AbstractPropertyTypeDescriptor::isInherited ( ) const
inline

◆ getChangeFlags()

uint32_t kanzi::AbstractPropertyTypeDescriptor::getChangeFlags ( ) const
inline

◆ getEditorInfo()

kanzi::PropertyTypeEditorInfoSharedPtr kanzi::AbstractPropertyTypeDescriptor::getEditorInfo ( ) const
inline

Gets editor info for the property type.

/return Shared pointer to editor info.

◆ constructValueSource()

virtual ValueSource * kanzi::AbstractPropertyTypeDescriptor::constructValueSource ( )
pure virtual

◆ destructValueSource()

virtual void kanzi::AbstractPropertyTypeDescriptor::destructValueSource ( ValueSource * valueSource)
pure virtual

◆ constructModifierStorage()

virtual ModifierStorage * kanzi::AbstractPropertyTypeDescriptor::constructModifierStorage ( )
pure virtual

◆ destructModifierStorage()

virtual void kanzi::AbstractPropertyTypeDescriptor::destructModifierStorage ( ModifierStorage * modifierStorage)
pure virtual

◆ getModifierValueSource()

virtual ValueSource * kanzi::AbstractPropertyTypeDescriptor::getModifierValueSource ( ModifierStorage * modifierStorage)
pure virtual

◆ validateModifiers()

virtual void kanzi::AbstractPropertyTypeDescriptor::validateModifiers ( PropertyObject & object,
PropertyStorage & propertyStorage,
PropertyNotificationReason reason )
pure virtual

◆ constructNotificationStorage()

virtual NotificationStorage * kanzi::AbstractPropertyTypeDescriptor::constructNotificationStorage ( )
pure virtual

◆ destructNotificationStorage()

virtual void kanzi::AbstractPropertyTypeDescriptor::destructNotificationStorage ( NotificationStorage * notificationStorage)
pure virtual

◆ invokeGlobalNotificationHandlers()

virtual void kanzi::AbstractPropertyTypeDescriptor::invokeGlobalNotificationHandlers ( PropertyObject & object,
ValueSource * finalValueSource,
PropertyNotificationReason reason )
pure virtual

◆ invokeNotificationHandlers()

virtual void kanzi::AbstractPropertyTypeDescriptor::invokeNotificationHandlers ( PropertyObject & object,
ValueSource * finalValueSource,
NotificationStorage * notificationStorage,
PropertyNotificationReason reason )
pure virtual

◆ copyValueSource()

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 >.

◆ findDescriptor()

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

Finds a fixed property type by name.

◆ registerDescriptor()

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

Member Data Documentation

◆ m_name

const char* kanzi::AbstractPropertyTypeDescriptor::m_name

Name of the property type.

◆ m_unqualifiedName

const char* kanzi::AbstractPropertyTypeDescriptor::m_unqualifiedName

Unqualified name of the property type.

◆ m_flags

uint32_t kanzi::AbstractPropertyTypeDescriptor::m_flags

Flags of property type.

◆ m_changeFlags

uint32_t kanzi::AbstractPropertyTypeDescriptor::m_changeFlags

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

◆ s_inheritedFlag

const uint32_t kanzi::AbstractPropertyTypeDescriptor::s_inheritedFlag
static

Bit flag to encode that the property type is inherited.

◆ s_managedStringFlag

const uint32_t kanzi::AbstractPropertyTypeDescriptor::s_managedStringFlag
static

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

◆ s_inheritedMask

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: