Kanzi 3.9.10
kanzi::PropertyTypeDescriptor< T > Class Template Reference

PropertyTypeDescriptor is used internally by the property system to implement all operations required for property types that have the same data type. More...

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

Inheritance diagram for kanzi::PropertyTypeDescriptor< T >:
[legend]

Classes

struct  TypedModifierEntry
 
struct  TypedModifierStorage
 
struct  TypedNotificationEntry
 
struct  TypedNotificationStorage
 
struct  TypedValueSource
 

Public Types

typedef void(* ModifierCallback) (PropertyObject &, typename Traits::StorageType &, PropertyNotificationReason, void *)
 
typedef void(* NotificationCallback) (PropertyObject &, const typename Traits::StorageType &, PropertyNotificationReason, void *)
 
using Traits
 
- Public Types inherited from kanzi::AbstractPropertyTypeDescriptor
typedef unique_ptr< AbstractPropertyTypeDescriptorManagedDescriptor
 
typedef unique_ptr< ValueSourceOwnerValueSourceOwnerPtr
 ValueSourceOwner unique pointer type.
 

Public Member Functions

void addNotificationHandler (NotificationCallback callback, void *owner)
 
TypedModifierStorageconstructModifierStorage () override
 
TypedNotificationStorageconstructNotificationStorage () override
 
TypedValueSourceconstructValueSource () override
 
void copyValueSource (AbstractPropertyTypeDescriptor::ValueSource *dst, const AbstractPropertyTypeDescriptor::ValueSource *src) override
 AbstractPropertyTypeDescriptor::copyValueSource() implementation.
 
void destructModifierStorage (ModifierStorage *modifierStorage) override
 
void destructNotificationStorage (NotificationStorage *notificationStorage) override
 
void destructValueSource (ValueSource *valueSource) override
 
kanzi::PropertyDataType getDataType () const override
 
Traits::ReturnType getDefaultValue () const
 
TypedValueSourcegetModifierValueSource (ModifierStorage *modifierStorage) override
 
void invokeGlobalNotificationHandlers (PropertyObject &object, ValueSource *finalValueSource, PropertyNotificationReason reason) override
 
void invokeNotificationHandlers (PropertyObject &object, ValueSource *finalValueSource, NotificationStorage *notificationStorage, PropertyNotificationReason reason) override
 
 PropertyTypeDescriptor (FixedString name, typename Traits::ParameterType defaultValue, uint32_t changeFlags, bool inherited, PropertyTypeEditorInfoSharedPtr editorInfo)
 
 PropertyTypeDescriptor (MetadataGeneratedName name, typename Traits::ParameterType defaultValue, uint32_t changeFlags, bool inherited, PropertyTypeEditorInfoSharedPtr editorInfo)
 
void removeNotificationHandler (NotificationCallback callback, void *owner)
 
void validateModifiers (PropertyObject &object, PropertyStorage &propertyStorage, PropertyNotificationReason reason) override
 
 ~PropertyTypeDescriptor () override
 
- Public Member Functions inherited from kanzi::AbstractPropertyTypeDescriptor
 AbstractPropertyTypeDescriptor (FixedString name, uint32_t changeFlags, bool inherited, PropertyTypeEditorInfoSharedPtr editorInfo)
 
 AbstractPropertyTypeDescriptor (MetadataGeneratedName name, uint32_t changeFlags, bool inherited, PropertyTypeEditorInfoSharedPtr editorInfo)
 
uint32_t getChangeFlags () const
 
kanzi::PropertyTypeEditorInfoSharedPtr getEditorInfo () const
 Gets editor info for the property type.
 
const chargetName () const
 
const chargetUnqualifiedName () const
 
bool isInherited () const
 
virtual ~AbstractPropertyTypeDescriptor ()
 

Public Attributes

Traits::StorageType m_defaultValue
 
unique_ptr< TypedNotificationStoragem_typeNotificationEntries
 
- Public Attributes inherited from kanzi::AbstractPropertyTypeDescriptor
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.
 

Additional Inherited Members

- Static Public Member Functions inherited from kanzi::AbstractPropertyTypeDescriptor
static AbstractPropertyTypeDescriptorfindDescriptor (string_view name)
 Finds a fixed property type by name.
 
static void registerDescriptor (ManagedDescriptor descriptor)
 
- Static Public Attributes inherited from kanzi::AbstractPropertyTypeDescriptor
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

template<typename T>
class kanzi::PropertyTypeDescriptor< T >

PropertyTypeDescriptor is used internally by the property system to implement all operations required for property types that have the same data type.

Member Typedef Documentation

◆ Traits

◆ ModifierCallback

template<typename T >
typedef void(* kanzi::PropertyTypeDescriptor< T >::ModifierCallback) (PropertyObject &, typename Traits::StorageType &, PropertyNotificationReason, void *)

◆ NotificationCallback

template<typename T >
typedef void(* kanzi::PropertyTypeDescriptor< T >::NotificationCallback) (PropertyObject &, const typename Traits::StorageType &, PropertyNotificationReason, void *)

Constructor & Destructor Documentation

◆ PropertyTypeDescriptor() [1/2]

template<typename T >
kanzi::PropertyTypeDescriptor< T >::PropertyTypeDescriptor ( FixedString name,
typename Traits::ParameterType defaultValue,
uint32_t changeFlags,
bool inherited,
PropertyTypeEditorInfoSharedPtr editorInfo )
inlineexplicit

◆ PropertyTypeDescriptor() [2/2]

template<typename T >
kanzi::PropertyTypeDescriptor< T >::PropertyTypeDescriptor ( MetadataGeneratedName name,
typename Traits::ParameterType defaultValue,
uint32_t changeFlags,
bool inherited,
PropertyTypeEditorInfoSharedPtr editorInfo )
inlineexplicit

◆ ~PropertyTypeDescriptor()

template<typename T >
kanzi::PropertyTypeDescriptor< T >::~PropertyTypeDescriptor ( )
inlineoverride

Member Function Documentation

◆ getDefaultValue()

template<typename T >
Traits::ReturnType kanzi::PropertyTypeDescriptor< T >::getDefaultValue ( ) const
inline

◆ getDataType()

template<typename T >
kanzi::PropertyDataType kanzi::PropertyTypeDescriptor< T >::getDataType ( ) const
inlineoverridevirtual

◆ constructValueSource()

template<typename T >
TypedValueSource * kanzi::PropertyTypeDescriptor< T >::constructValueSource ( )
inlineoverridevirtual

◆ destructValueSource()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::destructValueSource ( ValueSource * valueSource)
inlineoverridevirtual

◆ constructModifierStorage()

template<typename T >
TypedModifierStorage * kanzi::PropertyTypeDescriptor< T >::constructModifierStorage ( )
inlineoverridevirtual

◆ destructModifierStorage()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::destructModifierStorage ( ModifierStorage * modifierStorage)
inlineoverridevirtual

◆ getModifierValueSource()

template<typename T >
TypedValueSource * kanzi::PropertyTypeDescriptor< T >::getModifierValueSource ( ModifierStorage * modifierStorage)
inlineoverridevirtual

◆ validateModifiers()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::validateModifiers ( PropertyObject & object,
PropertyStorage & propertyStorage,
PropertyNotificationReason reason )
inlineoverridevirtual

◆ constructNotificationStorage()

template<typename T >
TypedNotificationStorage * kanzi::PropertyTypeDescriptor< T >::constructNotificationStorage ( )
inlineoverridevirtual

◆ destructNotificationStorage()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::destructNotificationStorage ( NotificationStorage * notificationStorage)
inlineoverridevirtual

◆ invokeGlobalNotificationHandlers()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::invokeGlobalNotificationHandlers ( PropertyObject & object,
ValueSource * finalValueSource,
PropertyNotificationReason reason )
inlineoverridevirtual

◆ invokeNotificationHandlers()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::invokeNotificationHandlers ( PropertyObject & object,
ValueSource * finalValueSource,
NotificationStorage * notificationStorage,
PropertyNotificationReason reason )
inlineoverridevirtual

◆ copyValueSource()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::copyValueSource ( AbstractPropertyTypeDescriptor< T >::ValueSource * dst,
const AbstractPropertyTypeDescriptor< T >::ValueSource * src )
inlineoverridevirtual

◆ addNotificationHandler()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::addNotificationHandler ( NotificationCallback callback,
void * owner )
inline

◆ removeNotificationHandler()

template<typename T >
void kanzi::PropertyTypeDescriptor< T >::removeNotificationHandler ( NotificationCallback callback,
void * owner )
inline

Member Data Documentation

◆ m_defaultValue

template<typename T >
Traits::StorageType kanzi::PropertyTypeDescriptor< T >::m_defaultValue

◆ m_typeNotificationEntries

template<typename T >
unique_ptr<TypedNotificationStorage> kanzi::PropertyTypeDescriptor< T >::m_typeNotificationEntries

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