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 >:
kanzi::AbstractPropertyTypeDescriptor

Classes

struct  TypedModifierEntry
 
struct  TypedModifierStorage
 
struct  TypedNotificationEntry
 
struct  TypedNotificationStorage
 
struct  TypedValueSource
 

Public Types

typedef PropertyDataTypeTraits< T > Traits
 
typedef void(* ModifierCallback) (PropertyObject &, typename Traits::StorageType &, PropertyNotificationReason, void *)
 
typedef void(* NotificationCallback) (PropertyObject &, const typename Traits::StorageType &, PropertyNotificationReason, void *)
 
- Public Types inherited from kanzi::AbstractPropertyTypeDescriptor
typedef unique_ptr< AbstractPropertyTypeDescriptorManagedDescriptor
 

Public Member Functions

 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)
 
virtual ~PropertyTypeDescriptor () KZ_OVERRIDE
 
Traits::ReturnType getDefaultValue () const
 
virtual kanzi::PropertyDataType getDataType () const KZ_OVERRIDE
 
virtual TypedValueSourceconstructValueSource () KZ_OVERRIDE
 
virtual void destructValueSource (ValueSource *valueSource) KZ_OVERRIDE
 
virtual TypedModifierStorageconstructModifierStorage () KZ_OVERRIDE
 
virtual void destructModifierStorage (ModifierStorage *modifierStorage) KZ_OVERRIDE
 
virtual TypedValueSourcegetModifierValueSource (ModifierStorage *modifierStorage) KZ_OVERRIDE
 
virtual void validateModifiers (PropertyObject &object, PropertyStorage &propertyStorage, PropertyNotificationReason reason) KZ_OVERRIDE
 
virtual TypedNotificationStorageconstructNotificationStorage () KZ_OVERRIDE
 
virtual void destructNotificationStorage (NotificationStorage *notificationStorage) KZ_OVERRIDE
 
virtual void invokeGlobalNotificationHandlers (PropertyObject &object, ValueSource *finalValueSource, PropertyNotificationReason reason) KZ_OVERRIDE
 
virtual void invokeNotificationHandlers (PropertyObject &object, ValueSource *finalValueSource, NotificationStorage *notificationStorage, PropertyNotificationReason reason) KZ_OVERRIDE
 
virtual void copyValueSource (AbstractPropertyTypeDescriptor::ValueSource *dst, const AbstractPropertyTypeDescriptor::ValueSource *src) KZ_OVERRIDE
 AbstractPropertyTypeDescriptor::copyValueSource() implementation. More...
 
void addNotificationHandler (NotificationCallback callback, void *owner)
 
void removeNotificationHandler (NotificationCallback callback, void *owner)
 
- 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)
 
virtual ~AbstractPropertyTypeDescriptor ()
 
const char * getName () const
 
const char * getUnqualifiedName () const
 
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")
 

Public Attributes

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

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

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

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

Constructor & Destructor Documentation

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

Member Function Documentation

template<typename T >
Traits::ReturnType kanzi::PropertyTypeDescriptor< T >::getDefaultValue ( ) const
inline
template<typename T >
virtual kanzi::PropertyDataType kanzi::PropertyTypeDescriptor< T >::getDataType ( ) const
inlinevirtual
template<typename T >
virtual TypedValueSource* kanzi::PropertyTypeDescriptor< T >::constructValueSource ( )
inlinevirtual
template<typename T >
virtual void kanzi::PropertyTypeDescriptor< T >::destructValueSource ( ValueSource valueSource)
inlinevirtual
template<typename T >
virtual TypedModifierStorage* kanzi::PropertyTypeDescriptor< T >::constructModifierStorage ( )
inlinevirtual
template<typename T >
virtual void kanzi::PropertyTypeDescriptor< T >::destructModifierStorage ( ModifierStorage modifierStorage)
inlinevirtual
template<typename T >
virtual TypedValueSource* kanzi::PropertyTypeDescriptor< T >::getModifierValueSource ( ModifierStorage modifierStorage)
inlinevirtual
template<typename T >
virtual void kanzi::PropertyTypeDescriptor< T >::validateModifiers ( PropertyObject object,
PropertyStorage propertyStorage,
PropertyNotificationReason  reason 
)
inlinevirtual
template<typename T >
virtual TypedNotificationStorage* kanzi::PropertyTypeDescriptor< T >::constructNotificationStorage ( )
inlinevirtual
template<typename T >
virtual void kanzi::PropertyTypeDescriptor< T >::destructNotificationStorage ( NotificationStorage notificationStorage)
inlinevirtual
template<typename T >
virtual void kanzi::PropertyTypeDescriptor< T >::invokeGlobalNotificationHandlers ( PropertyObject object,
ValueSource finalValueSource,
PropertyNotificationReason  reason 
)
inlinevirtual
template<typename T >
virtual void kanzi::PropertyTypeDescriptor< T >::invokeNotificationHandlers ( PropertyObject object,
ValueSource finalValueSource,
NotificationStorage notificationStorage,
PropertyNotificationReason  reason 
)
inlinevirtual
template<typename T >
virtual void kanzi::PropertyTypeDescriptor< T >::copyValueSource ( AbstractPropertyTypeDescriptor< T >::ValueSource dst,
const AbstractPropertyTypeDescriptor< T >::ValueSource src 
)
inlinevirtual
template<typename T >
void kanzi::PropertyTypeDescriptor< T >::addNotificationHandler ( NotificationCallback  callback,
void *  owner 
)
inline
template<typename T >
void kanzi::PropertyTypeDescriptor< T >::removeNotificationHandler ( NotificationCallback  callback,
void *  owner 
)
inline

Member Data Documentation

template<typename T >
Traits::StorageType kanzi::PropertyTypeDescriptor< T >::m_defaultValue
template<typename T >
unique_ptr<TypedNotificationStorage> kanzi::PropertyTypeDescriptor< T >::m_typeNotificationEntries

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