Kanzi Framework  3.9.0
Kanzi Engine API
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 *)
 
typedef PropertyDataTypeTraits< TTraits
 
- Public Types inherited from kanzi::AbstractPropertyTypeDescriptor
typedef unique_ptr< AbstractPropertyTypeDescriptorManagedDescriptor
 
typedef unique_ptr< ValueSourceOwnerValueSourceOwnerPtr
 ValueSourceOwner unique pointer type. More...
 

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. More...
 
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. More...
 
const char * getName () const
 
const char * getUnqualifiedName () 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. More...
 
uint32_t m_flags
 Flags of property type. More...
 
const char * m_name
 Name of the property type. More...
 
const char * m_unqualifiedName
 Unqualified name of the property type. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from kanzi::AbstractPropertyTypeDescriptor
static AbstractPropertyTypeDescriptorfindDescriptor (string_view name)
 Finds a fixed property type by name. More...
 
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. More...
 
static const uint32_t s_inheritedMask
 Bit mask to extract inherited flag from m_flags. More...
 
static const uint32_t s_managedStringFlag
 Bit flag to encode that the name of the property type is a local copy. More...
 

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

template<typename T >
typedef PropertyDataTypeTraits<T> kanzi::PropertyTypeDescriptor< T >::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: