Kanzi 3.9.10
kanzi::ValueSourceBindingTargetRuntime Class Reference

Base class for value source binding target runtimes. More...

#include <kanzi/core.ui/binding/value_source_binding_target_runtime.hpp>

Inheritance diagram for kanzi::ValueSourceBindingTargetRuntime:
[legend]

Public Member Functions

void clearValueSourceOwner ()
 Clears the value source owner.
 
PropertyValuePrecedence getPrecedence () const
 Gets value source precedence.
 
PropertyField getPropertyField () const
 Gets a property field.
 
AbstractPropertyType getPropertyType () const
 Gets a property type.
 
bool hasValueSourceOwner () const
 Indicates whether this target runtime still has a value source owner.
 
- Public Member Functions inherited from kanzi::BindingTargetRuntime
void attachForRead ()
 Attaches the binding target runtime for reading.
 
void attachForWrite ()
 Attaches the binding target runtime for writing.
 
BindingProcessorRuntimeConstIterator beginProcessorRuntimes () const
 Gets an iterator to the beginning of binding processor runtimes.
 
void createBindingProcessorsRuntimes (const AbstractBinding &binding)
 Creates a processor runtime for each BindingProcessor held by the binding parameter.
 
void detach ()
 Detaches binding target runtime.
 
BindingProcessorRuntimeConstIterator endProcessorRuntimes () const
 Gets an iterator to the end of binding processor runtimes.
 
AbstractBindingRuntimegetBindingRuntime () const
 Gets the binding runtime.
 
BindingLookupContextgetLookupContext () const
 Gets the lookup context.
 
bool isConnected ()
 Indicates whether this source is connected.
 
bool read (Variant &value)
 Reads a value from the binding target.
 
void setBindingRuntime (AbstractBindingRuntime &bindingRuntime)
 Sets the binding runtime.
 
bool write (const Variant &value)
 Writes a value to the binding target.
 
virtual ~BindingTargetRuntime ()=default
 Destructor.
 

Static Public Member Functions

static BindingTargetRuntimePtr create (AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence, bool reuseAllowed, BindingLookupContext &lookupContext)
 Creates a value source binding target runtime without an actual binding target.
 

Protected Member Functions

 ValueSourceBindingTargetRuntime (AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence, PropertyObject *object)
 Constructor.
 
- Protected Member Functions inherited from kanzi::BindingTargetRuntime
virtual void attachForReadOverride ()
 Implementation-dependent attach.
 
virtual void attachForWriteOverride ()=0
 Implementation-dependent attach.
 
 BindingTargetRuntime ()=default
 Constructor.
 
virtual void detachOverride ()=0
 Implementation-dependent detach.
 
virtual bool isConnectedOverride ()=0
 Implementation-dependent connected check.
 
virtual bool readOverride (Variant &value)
 Implementation-dependent read.
 
virtual bool writeOverride (const Variant &value)=0
 Implementation-dependent write.
 

Protected Attributes

PropertyField m_field
 Property field to use.
 
bool m_localReadListenerRequested
 Indicates whether the local read listener is requested.
 
PropertyObjectm_object
 Object the value source is installed to.
 
PropertyValuePrecedence m_precedence
 Precedence to use.
 
AbstractPropertyType m_propertyType
 Property type to use.
 
AbstractPropertyTypeDescriptor::ValueSourceOwnerm_valueSourceOwner
 Owner for the binding value source this runtime installs.
 
- Protected Attributes inherited from kanzi::BindingTargetRuntime
AbstractBindingRuntimem_bindingRuntime
 Abstract binding runtime for this target.
 
BindingProcessorRuntimeContainer m_processorRuntimes
 Binding processors runtimes (for the target, backward direction).
 

Additional Inherited Members

- Public Types inherited from kanzi::BindingTargetRuntime
using BindingProcessorRuntimeConstIterator
 Binding processor iterator type.
 
using BindingProcessorRuntimeContainer
 Binding processor container type.
 

Detailed Description

Base class for value source binding target runtimes.

Inherited by type-specialized version.

Kanzi creates a value source binding target runtime when you add a binding to a Node or RenderPass using the setBinding() function.

To create a ValueSourceBindingTargetRuntime for a binding runtime when adding the binding to a Node or RenderPass:

// Calling setBinding() will install the binding runtime as a property value source.
BindingRuntimeHandle runtime = node->setBinding(binding, Node2D::OpacityProperty);

ValueSourceBindingTargetRuntime creates a property value source, that owns the binding runtime that was created. If the property value source in Node or RenderPass is removed, the binding runtime is removed as well. As bindings are usually set with local precedence, setting a local value with setProperty() removes the binding.

Since
Kanzi 3.7.0

Constructor & Destructor Documentation

◆ ValueSourceBindingTargetRuntime()

kanzi::ValueSourceBindingTargetRuntime::ValueSourceBindingTargetRuntime ( AbstractPropertyType propertyType,
PropertyField field,
PropertyValuePrecedence precedence,
PropertyObject * object )
explicitprotected

Constructor.

Parameters
propertyTypeProperty type to use.
fieldProperty field to use.
precedenceProperty value precedence.
objectThe PropertyObject to install to.
Since
Kanzi 3.9.6 Removed BindingLookupContext, added PropertyObject.

Member Function Documentation

◆ create()

static BindingTargetRuntimePtr kanzi::ValueSourceBindingTargetRuntime::create ( AbstractPropertyType propertyType,
PropertyField field,
PropertyValuePrecedence precedence,
bool reuseAllowed,
BindingLookupContext & lookupContext )
static

Creates a value source binding target runtime without an actual binding target.

Parameters
propertyTypeProperty type to use.
fieldProperty field to use.
precedenceProperty value precedence.
reuseAllowedWhether reuse of the installed value source is allowed by other functionality, such as setProperty.
lookupContextThe lookup context to use for getting the target object.
Returns
The value source binding target runtime.
Since
Kanzi 3.9.6 Changed BindingLookupContextPtr, to BindingLookupContext&.

◆ getPropertyType()

AbstractPropertyType kanzi::ValueSourceBindingTargetRuntime::getPropertyType ( ) const
inline

Gets a property type.

Required by the inheriting classes.

Returns
Property type for this target.

◆ getPropertyField()

PropertyField kanzi::ValueSourceBindingTargetRuntime::getPropertyField ( ) const
inline

Gets a property field.

Returns
Property field.

◆ getPrecedence()

PropertyValuePrecedence kanzi::ValueSourceBindingTargetRuntime::getPrecedence ( ) const
inline

Gets value source precedence.

Required by the inheriting classes.

Returns
Precedence for this target.

◆ hasValueSourceOwner()

bool kanzi::ValueSourceBindingTargetRuntime::hasValueSourceOwner ( ) const
inline

Indicates whether this target runtime still has a value source owner.

Returns
If the value source owner exists, true, otherwise false.

◆ clearValueSourceOwner()

void kanzi::ValueSourceBindingTargetRuntime::clearValueSourceOwner ( )
inline

Clears the value source owner.

To be called by the owner upon destruction to prevent recursive destruction.

Member Data Documentation

◆ m_propertyType

AbstractPropertyType kanzi::ValueSourceBindingTargetRuntime::m_propertyType
protected

Property type to use.

◆ m_field

PropertyField kanzi::ValueSourceBindingTargetRuntime::m_field
protected

Property field to use.

◆ m_precedence

PropertyValuePrecedence kanzi::ValueSourceBindingTargetRuntime::m_precedence
protected

Precedence to use.

◆ m_object

PropertyObject& kanzi::ValueSourceBindingTargetRuntime::m_object
protected

Object the value source is installed to.

◆ m_localReadListenerRequested

bool kanzi::ValueSourceBindingTargetRuntime::m_localReadListenerRequested
protected

Indicates whether the local read listener is requested.

◆ m_valueSourceOwner

AbstractPropertyTypeDescriptor::ValueSourceOwner* kanzi::ValueSourceBindingTargetRuntime::m_valueSourceOwner
protected

Owner for the binding value source this runtime installs.

Not created before the binding has been executed once.


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