ACF $AcfVersion:0$
Public Types | Public Member Functions | List of all members
istd::CChangeDelegator Class Reference

Delegates calls of IChangeable methods to the given slave. More...

#include <CChangeDelegator.h>

Inheritance diagram for istd::CChangeDelegator:
istd::IChangeDelegator istd::IChangeable istd::IPolymorphic istd::TChangeDelegator< IHierarchicalMessageContainer > istd::TChangeDelegator< ibase::IHierarchicalCommand > istd::TChangeDelegator< Base > istd::THierarchicalBase< IHierarchicalMessageContainer > istd::THierarchicalBase< ibase::IHierarchicalCommand > istd::THierarchicalBase< Base, Interface > ilog::CMessageContainer iqtgui::CHierarchicalCommand ilog::CLogComp iloggui::CLogGuiComp

Public Types

typedef istd::IChangeable BaseClass
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 

Public Member Functions

 CChangeDelegator ()
 
 CChangeDelegator (istd::IChangeable *slavePtr)
 
virtual void SetSlavePtr (istd::IChangeable *slavePtr) override
 Sets the slave object pointer for change delegation.
 
virtual istd::IChangeableGetSlavePtr () const override
 Gets the slave object pointer.
 
virtual void OnBeginChanges () override
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet) override
 Callback function for end change event.
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 

Detailed Description

Delegates calls of IChangeable methods to the given slave.

Definition at line 18 of file CChangeDelegator.h.

Member Typedef Documentation

◆ BaseClass

Definition at line 21 of file CChangeDelegator.h.

Constructor & Destructor Documentation

◆ CChangeDelegator() [1/2]

istd::CChangeDelegator::CChangeDelegator ( )

◆ CChangeDelegator() [2/2]

istd::CChangeDelegator::CChangeDelegator ( istd::IChangeable slavePtr)
explicit

Member Function Documentation

◆ GetSlavePtr()

istd::IChangeable * istd::CChangeDelegator::GetSlavePtr ( ) const
inlineoverridevirtual

Gets the slave object pointer.

The slave object will receive change notifications when this object's state changes. If no slave is set, returns nullptr.

Returns
Pointer to the slave IChangeable object, or nullptr if not set.

Implements istd::IChangeDelegator.

Definition at line 47 of file CChangeDelegator.h.

◆ OnBeginChanges()

virtual void istd::CChangeDelegator::OnBeginChanges ( )
overridevirtual

Callback function for begin change event.

Please note, that in some cases no following OnEndChanges can be called.

Reimplemented from istd::IChangeable.

Reimplemented in istd::TChangeDelegator< Base >, istd::TChangeDelegator< ibase::IHierarchicalCommand >, and istd::TChangeDelegator< IHierarchicalMessageContainer >.

◆ OnEndChanges()

virtual void istd::CChangeDelegator::OnEndChanges ( const ChangeSet changeSet)
overridevirtual

◆ SetSlavePtr()

void istd::CChangeDelegator::SetSlavePtr ( istd::IChangeable slavePtr)
inlineoverridevirtual

Sets the slave object pointer for change delegation.

When a slave is set, all change notifications (BeginChanges and EndChanges) from this object will be automatically forwarded to the slave. This enables hierarchical change notification where child objects notify their parents of changes.

Parameters
slavePtrPointer to the IChangeable object that should receive delegated change notifications. Pass nullptr to disable delegation.
Note
The slave object is not owned by this delegator. The caller is responsible for ensuring the slave object remains valid during the delegation lifetime.
See also
GetSlavePtr()

Implements istd::IChangeDelegator.

Definition at line 41 of file CChangeDelegator.h.


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