ACF $AcfVersion:0$
CObjectSynchronizerComp.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
8#include <istd/IChangeable.h>
9
10
11namespace ibase
12{
13
14
25{
26public:
28
29 I_BEGIN_COMPONENT(CObjectSynchronizerComp);
30 I_ASSIGN(m_referenceObjectCompPtr, "ReferenceObject", "Reference data object", true, "ReferenceObject");
31 I_ASSIGN_TO(m_referenceObjectModelCompPtr, m_referenceObjectCompPtr, true);
32 I_ASSIGN_MULTI_0(m_slaveObjectsCompPtr, "SlaveObjects", "The list of object which will be hold synchronized with reference object", true);
33 I_END_COMPONENT;
34
35protected:
36 // reimplemented (imod::CSingleModelObserverBase)
37 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
38
39 // reimplemented (icomp::CComponentBase)
40 virtual void OnComponentCreated() override;
41 virtual void OnComponentDestroyed() override;
42
43private:
44 I_REF(istd::IChangeable, m_referenceObjectCompPtr);
45 I_REF(imod::IModel, m_referenceObjectModelCompPtr);
46 I_MULTIREF(istd::IChangeable, m_slaveObjectsCompPtr);
47};
48
49
50} // namespace ibase
51
52
53
54
Component for synchronization between some master data object and its "slaves".
virtual void OnComponentDestroyed() override
virtual void OnComponentCreated() override
virtual void OnUpdate(const istd::IChangeable::ChangeSet &changeSet) override
Called on update of observed model.
Base class for component implementation.
Basic implementation for a single model observer.
Common interface for model objects, that supports Model/Observer design pattern.
Definition IModel.h:25
Set of change flags (its IDs).
Definition IChangeable.h:36
Common interface for data model objects, which can be changed.
Definition IChangeable.h:28
This namespace contains basic implementations of standard primitives on the component level.