ImagingTools Core SDK
CModelChangeNotifierComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
6#include <imod/IModel.h>
7#include <imod/CSingleModelObserverBase.h>
8
9// ImtCore includes
10#include <imtservergql/CGqlPublisherCompBase.h>
11
12
13namespace imtservergql
14{
15
16
22 public imtservergql::CGqlPublisherCompBase,
23 protected imod::CSingleModelObserverBase
24{
25public:
26 typedef imtservergql::CGqlPublisherCompBase BaseClass;
27
28 I_BEGIN_COMPONENT(CModelChangeNotifierComp);
29 I_ASSIGN(m_modelCompPtr, "Model", "Observed data model. On changes of this data model the subscriber will be notified", true, "Model");
30 I_END_COMPONENT;
31
32protected:
33 // reimplemented (icomp::CComponentBase)
34 virtual void OnComponentCreated() override;
35 virtual void OnComponentDestroyed() override;
36
37 // reimplemented (imod::CSingleModelObserverBase)
38 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
39
40protected:
41 I_REF(imod::IModel, m_modelCompPtr);
42};
43
44
45} // namespace imtservergql
46
47