ForwardingAction is the base class for the action classes that read and send arguments, such as SetPropertyAction or DispatchMessageAction. More...
#include <kanzi/ui/action/forwarding_action.hpp>
Classes | |
struct | BindingEntry |
Entry for bindings to install when the action is invoked. More... | |
struct | BindingRuntimeEntry |
Entry for binding runtimes to execute when the action is invoked. More... | |
Public Types | |
typedef BindingContainer::const_iterator | BindingConstIterator |
typedef map< AbstractPropertyType, BindingEntry > | BindingContainer |
typedef BindingRuntimeContainer::const_iterator | BindingRuntimeConstIterator |
typedef map< AbstractPropertyType, BindingRuntimeEntry > | BindingRuntimeContainer |
![]() | |
typedef PropertyStorageContainer::const_iterator | PropertyStorageConstIterator |
typedef vector< PropertyStoragePtr > | PropertyStorageContainer |
typedef PropertyStorageContainer::iterator | PropertyStorageIterator |
typedef intrusive_ptr< AbstractPropertyTypeDescriptor::PropertyStorage > | PropertyStoragePtr |
typedef PropertyStorageContainer::reverse_iterator | PropertyStorageReverseIterator |
Public Member Functions | |
ManualBindingRuntimeSharedPtr | addArgumentBinding (AbstractPropertyType sourceArgument, AbstractPropertyType targetArgument) |
Adds a binding from message argument to a node or a message argument. More... | |
ManualBindingRuntimeSharedPtr | addArgumentBinding (AbstractPropertyType sourceArgument, PropertyField sourceField, AbstractPropertyType targetArgument, PropertyField targetField) |
Adds a binding from message argument to a node or a message argument. More... | |
ManualBindingRuntimeSharedPtr | addBinding (string_view targetPath, AbstractPropertyType targetArgument, PropertyField targetField, ManualBindingSharedPtr binding) |
Adds an arbitrary binding object to an action. More... | |
ManualBindingRuntimeSharedPtr | addPropertyBinding (string_view sourceObjectPath, AbstractPropertyType sourcePropertyType, AbstractPropertyType targetArgument) |
Adds a binding from property to a node or a message argument. More... | |
ManualBindingRuntimeSharedPtr | addPropertyBinding (string_view sourceObjectPath, AbstractPropertyType sourcePropertyType, PropertyField sourceField, string_view targetObjectPath, AbstractPropertyType targetArgument, PropertyField targetField) |
Adds a binding from property to a node or a message argument. More... | |
ManualBindingRuntimeSharedPtr | addPropertyBinding (string_view sourceObjectPath, AbstractPropertyType sourcePropertyType, PropertyField sourceField, AbstractPropertyType targetArgument, PropertyField targetField) |
Adds a binding from property to a node or a message argument. More... | |
ManualBindingRuntimeSharedPtr | addPropertyBinding (AbstractPropertyType sourcePropertyType, PropertyField sourceField, AbstractPropertyType targetArgument, PropertyField targetField) |
Adds a binding from property to a node or a message argument. More... | |
void | addResourceBinding (ResourceID id, AbstractPropertyType targetArgument, PropertyField targetField) |
Adds a binding from resource ID to a property field. More... | |
void | addResourceBinding (ResourceID id, AbstractPropertyType targetArgument) |
Adds a binding from resource ID to a property. More... | |
void | addResourceBinding (string_view id, AbstractPropertyType targetArgument, PropertyField targetField) |
Adds a binding from resource ID to a property field. More... | |
void | addResourceBinding (string_view id, AbstractPropertyType targetArgument) |
Adds a binding from resource ID to an object property. More... | |
ManualBindingRuntimeSharedPtr | addValueBinding (const Variant &sourceValue, AbstractPropertyType targetArgument, PropertyField targetField) |
Adds a binding from a value to a node or a message argument. More... | |
ManualBindingRuntimeSharedPtr | addValueBinding (const Variant &sourceValue, AbstractPropertyType targetArgument) |
Adds a binding from value to a node or a message argument. More... | |
BindingRuntimeConstIterator | beginBindingRuntimes () const |
Returns a const iterator pointing to the first binding runtimes. More... | |
BindingConstIterator | beginBindings () const |
Returns a const iterator pointing to the first bindings. More... | |
BindingRuntimeConstIterator | endBindingRuntimes () const |
Returns a const iterator pointing to the end of binding runtimes. More... | |
BindingConstIterator | endBindings () const |
Returns a const iterator pointing to the end of bindings. More... | |
![]() | |
void | attach (Trigger *trigger) |
Attaches an Action to a Trigger. More... | |
ActionSharedPtr | copy () const |
void | detach () |
Detaches the Action from the Trigger. More... | |
Trigger * | getTrigger () const |
Returns the pointer to a Trigger to which an Action is attached. More... | |
void | invoke () |
Invokes the Action. More... | |
chrono::milliseconds | getDelay () const |
Returns the delay in milliseconds that Kanzi waits before it invokes an action. More... | |
void | setDelay (chrono::milliseconds delay) |
Sets the delay in milliseconds that Kanzi waits before it invokes an action. More... | |
![]() | |
string | getName () const |
Returns the name of the action. More... | |
![]() | |
AppliedStyleEntrySharedPtr | applyObjectStyle (kanzi::StyleSharedPtr style) |
Applies a style to an object. More... | |
void | applyObjectStyles () |
Apply all styles for an object node. More... | |
Domain * | getDomain () const |
Returns the domain the object belongs to. More... | |
const Metaclass * | getDynamicMetaclass () const override |
Returns the metaclass of the dynamic type of the object. More... | |
MainLoopScheduler * | getMainLoopScheduler () const |
Returns the MainLoopScheduler instance of the associated Domain. More... | |
detail::MessageDispatcher * | getMessageDispatcher () const |
Returns the message dispatcher of the object. More... | |
ResourceManager * | getResourceManager () const |
Returns the resource manager of the object. More... | |
ScriptingContextSharedPtr | getScriptingContext () const |
Gets the scripting context of the object. More... | |
Object (Domain *domain) | |
void | setScriptingContext (ScriptingContextSharedPtr context) |
Sets the scripting context of the object. More... | |
void | unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry) |
void | unapplyObjectStyles () |
Unapplies and removes all applied styles. More... | |
~Object () override | |
![]() | |
bool | isTypeOf (const Metaclass *objectType) const |
Determines if the type of this object is the given type or derived from it. More... | |
virtual | ~MetaObject () |
![]() | |
template<typename DataType > | |
void | addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner) |
PropertyStorageContainer::iterator | beginPropertyStorage () |
Returns the begin iterator to the internal property storage container. More... | |
PropertyStorageContainer::const_iterator | beginPropertyStorage () const |
Returns the begin iterator to the internal property storage container. More... | |
void | clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
void | copyLocalValue (const PropertyObject &other, AbstractPropertyType propertyType) |
Copies local value of single property from another object. More... | |
void | copyLocalValues (const PropertyObject &other) |
Copies all local values from another object. More... | |
PropertyStorageContainer::iterator | endPropertyStorage () |
Returns the end iterator to the internal property storage container. More... | |
PropertyStorageContainer::const_iterator | endPropertyStorage () const |
Returns the end iterator to the internal property storage container. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractPropertyBase (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalProperty (const PropertyType< DataType > &propertyType) const |
Evaluates the property value in the same way as the overload above but does not default to the value in property metadata if there are no inputs to the property value. More... | |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers, but does not default to the value in property metadata if there are no inputs to the property value. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getProperty (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property type. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers. More... | |
template<typename DataType > | |
size_t | getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType) const |
Gets number of current notification handlers for given property type. More... | |
bool | hasBaseValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value, disregarding modifiers. More... | |
bool | hasLocalValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a local value set for the property. More... | |
bool | hasNonClassValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a value of any precedence higher than class default value set for the property. More... | |
bool | hasValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value. More... | |
bool | isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const |
virtual void | onPropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) |
Virtual function to handle property change notifications. More... | |
PropertyObject () | |
void | removeKzbProperties (flat_set< AbstractPropertyType > *keepProperties) |
Remove all KZB properties that are not included in a given set. More... | |
void | removeKzbProperties () |
Remove all KZB properties. More... | |
template<typename DataType > | |
void | removeLocalPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
void | removeLocalValue (AbstractPropertyType propertyType) |
Removes the local value associated with the property. More... | |
template<typename DataType > | |
void | removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
template<typename DataType > | |
void | setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
template<typename DataType > | |
void | setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
Sets the local value of a property type. More... | |
void | setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
void | validatePropertyModifiers (AbstractPropertyType propertyType) |
virtual | ~PropertyObject () |
Protected Attributes | |
BindingRuntimeContainer | m_bindingRuntimes |
Runtimes for binding rules to execute on invoke. More... | |
BindingContainer | m_resourceBindings |
Resource bindings to set to target object on invoke. More... | |
![]() | |
AppliedStyleContainer | m_appliedStyles |
Listing of applied styles applied to this object. More... | |
Additional Inherited Members | |
![]() | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Provides the Kanzi Studio editor metadata for the SetPropertyAction. More... | |
![]() | |
static ActionBaseSharedPtr | loadAction (Domain *domain, KzbFile &kzbFile, KzbMemoryParser &parser) |
Loads an ActionBase from a kzb file. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Provides the Kanzi Studio editor metadata for the ActionBase. More... | |
template<typename TAction > | |
static shared_ptr< TAction > | loadAction (Domain *domain, KzbFile &kzbFile, KzbMemoryParser &parser) |
Loads an TAction from a kzb file. More... | |
![]() | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. More... | |
![]() | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. More... | |
![]() | |
static PropertyType< int > | DelayProperty |
Delays all invocations of an action by the amount in milliseconds. More... | |
![]() | |
typedef vector< AppliedStyleEntrySharedPtr > | AppliedStyleContainer |
Applied style container. More... | |
ForwardingAction is the base class for the action classes that read and send arguments, such as SetPropertyAction or DispatchMessageAction.
ForwardingAction contains functionality to read arguments from sources, such as messages, properties or set values, and allows the inheriting action class to use these values. This usually means sending messages or setting values of properties.
To derive an action class from the ForwardingAction class:
typedef map<AbstractPropertyType, BindingRuntimeEntry> kanzi::ForwardingAction::BindingRuntimeContainer |
typedef BindingRuntimeContainer::const_iterator kanzi::ForwardingAction::BindingRuntimeConstIterator |
typedef BindingContainer::const_iterator kanzi::ForwardingAction::BindingConstIterator |
|
explicitprotected |
Constructor.
domain | Domain to use. |
name | Name of the forwarding action. |
ManualBindingRuntimeSharedPtr kanzi::ForwardingAction::addValueBinding | ( | const Variant & | sourceValue, |
AbstractPropertyType | targetArgument, | ||
PropertyField | targetField | ||
) |
Adds a binding from a value to a node or a message argument.
Use this function to set constant values to sent messages. Note that successive actions can override these values.
sourceValue | Source value. |
targetArgument | Target argument property type for the forwarded value. |
targetField | Target field of the argument property type. |
|
inline |
Adds a binding from value to a node or a message argument.
Use this function to bind from source values to message arguments. Target property field is PropertyFieldWhole.
sourceValue | Source value. |
targetArgument | Target argument property type for the forwarded value. |
ManualBindingRuntimeSharedPtr kanzi::ForwardingAction::addArgumentBinding | ( | AbstractPropertyType | sourceArgument, |
AbstractPropertyType | targetArgument | ||
) |
Adds a binding from message argument to a node or a message argument.
Use this function to bind from source message arguments to target message arguments. Both source and target property fields are PropertyFieldWhole.
sourceArgument | Source message argument. |
targetArgument | Target argument property type for the forwarded value. |
ManualBindingRuntimeSharedPtr kanzi::ForwardingAction::addArgumentBinding | ( | AbstractPropertyType | sourceArgument, |
PropertyField | sourceField, | ||
AbstractPropertyType | targetArgument, | ||
PropertyField | targetField | ||
) |
Adds a binding from message argument to a node or a message argument.
Use this function to bind from source message arguments to target message arguments. Source property field is PropertyFieldWhole.
sourceArgument | Source message argument. |
sourceField | Source field of the argument property type. |
targetArgument | Target argument property type for the forwarded value. |
targetField | Target field of the argument property type. |
ManualBindingRuntimeSharedPtr kanzi::ForwardingAction::addPropertyBinding | ( | string_view | sourceObjectPath, |
AbstractPropertyType | sourcePropertyType, | ||
AbstractPropertyType | targetArgument | ||
) |
Adds a binding from property to a node or a message argument.
Use this function to bind from source object properties to target message arguments. Target property field is PropertyFieldWhole.
sourceObjectPath | Path to source object. |
sourcePropertyType | Source property. |
targetArgument | Target argument property type for the forwarded value. |
ManualBindingRuntimeSharedPtr kanzi::ForwardingAction::addPropertyBinding | ( | string_view | sourceObjectPath, |
AbstractPropertyType | sourcePropertyType, | ||
PropertyField | sourceField, | ||
string_view | targetObjectPath, | ||
AbstractPropertyType | targetArgument, | ||
PropertyField | targetField | ||
) |
Adds a binding from property to a node or a message argument.
Use this function to bind from source object properties to target object properties.
sourceObjectPath | Path to source object. |
sourcePropertyType | Source property. |
sourceField | Source field of the argument property type. |
targetObjectPath | Path to target object. |
targetArgument | Target argument property type for the forwarded value. |
targetField | Target field of the argument property type. |
ManualBindingRuntimeSharedPtr kanzi::ForwardingAction::addPropertyBinding | ( | string_view | sourceObjectPath, |
AbstractPropertyType | sourcePropertyType, | ||
PropertyField | sourceField, | ||
AbstractPropertyType | targetArgument, | ||
PropertyField | targetField | ||
) |
Adds a binding from property to a node or a message argument.
Use this function to bind from source object properties to target object properties. Target object path is ".".
sourceObjectPath | Path to source object. |
sourcePropertyType | Source property. |
sourceField | Source field of the argument property type. |
targetArgument | Target argument property type for the forwarded value. |
targetField | Target field of the argument property type. |
|
inline |
Adds a binding from property to a node or a message argument.
Use this function to bind from source object properties to target object properties. Source and target object paths are ".".
sourcePropertyType | Source property. |
sourceField | Source field of the argument property type. |
targetArgument | Target argument property type for the forwarded value. |
targetField | Target field of the argument property type. |
void kanzi::ForwardingAction::addResourceBinding | ( | ResourceID | id, |
AbstractPropertyType | targetArgument, | ||
PropertyField | targetField | ||
) |
Adds a binding from resource ID to a property field.
Use this function to bind resolve resources to target message arguments.
id | Resource ID. |
targetArgument | Target argument property type for the forwarded value. |
targetField | Target field of the argument property type. |
|
inline |
Adds a binding from resource ID to a property.
Use this function to bind resolve resources to target message arguments.
id | Resource ID. |
targetArgument | Target argument property type for the forwarded value. |
|
inline |
Adds a binding from resource ID to a property field.
Use this function to bind resolve resources to target message arguments.
id | Resource ID. |
targetArgument | Target argument property type for the forwarded value. |
targetField | Target field of the argument property type. |
|
inline |
Adds a binding from resource ID to an object property.
Use this function to bind resolve resources to target message arguments.
id | Resource ID. |
targetArgument | Target argument property type for the forwarded value. |
ManualBindingRuntimeSharedPtr kanzi::ForwardingAction::addBinding | ( | string_view | targetPath, |
AbstractPropertyType | targetArgument, | ||
PropertyField | targetField, | ||
ManualBindingSharedPtr | binding | ||
) |
Adds an arbitrary binding object to an action.
An action can be executed in multiple parts where it can be first read and then written. For this reason, you can only add manual bindings or binding types that support delayed execution.
targetPath | Target path. |
targetArgument | Target property. |
targetField | Target property field. |
binding | Binding object to add. |
|
inline |
Returns a const iterator pointing to the first binding runtimes.
|
inline |
Returns a const iterator pointing to the end of binding runtimes.
|
inline |
Returns a const iterator pointing to the first bindings.
|
inline |
Returns a const iterator pointing to the end of bindings.
|
overrideprotectedvirtual |
Action::load() implementation.
Reimplemented from kanzi::ActionBase.
Reimplemented in kanzi::SetPropertyAction.
|
overrideprotectedvirtual |
Action::onAttach() implementation.
Reimplemented from kanzi::ActionBase.
|
overrideprotectedvirtual |
Action::onInvoke() implementation.
Reimplemented from kanzi::Action.
Reimplemented in kanzi::SetPropertyAction.
|
overrideprotectedvirtual |
Action::onPrepareDelayedInvoke() implementation.
Reimplemented from kanzi::Action.
Reimplemented in kanzi::SetPropertyAction.
|
protected |
Loads a binding object from a kzb file.
kzbFile | Input file. |
parser | KZB file parser to use. |
|
protectedvirtual |
Creates a binding target for a manual binding.
targetPath | Target path. |
targetArgument | Target property. |
targetField | Target property field. |
Reimplemented in kanzi::DispatchMessageAction, and kanzi::SetPropertyAction.
|
protected |
Removes a binding object from an action.
argumentType | The type of argument to remove. |
|
protected |
Removes a binding object from an action.
bindingRuntime | The binding runtime to remove. |
|
protected |
Removes all binding objects from an action.
|
protected |
Must be called by deriving classes on new instances created inside implementations of clone().
|
protected |
Gets the value of the argument with given property type in the forwarded message of associated trigger.
For use inside onInvoke() overrides.
argumentType | Property type of the argument. |
|
protected |
Sets all resource bindings to their respective target items, if possible.
For use inside onInvoke() overrides.
path | Path to target item, Node or RenderPass. |
|
protected |
Updates triggers on binding trigger look-up contexts.
|
protected |
Updates a message on message binding source runtimes.
|
protected |
Runtimes for binding rules to execute on invoke.
|
protected |
Resource bindings to set to target object on invoke.