ImagingTools Core SDK
CObjectCollectionChangeNotifierComp.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/TSingleModelObserverBase.h>
7
8// ImtCore includes
9#include <imtbase/IObjectCollection.h>
10#include <imtservergql/CGqlPublisherCompBase.h>
11
12
13namespace imtservergql
14{
15
16
21 public imtservergql::CGqlPublisherCompBase,
22 protected imod::TSingleModelObserverBase<imtbase::IObjectCollection>
23{
24public:
25 typedef imtservergql::CGqlPublisherCompBase BaseClass;
26 typedef imod::TSingleModelObserverBase<imtbase::IObjectCollection> BaseClass2;
27
28 I_BEGIN_COMPONENT(CObjectCollectionChangeNotifierComp);
29 I_ASSIGN(m_objectCollectionCompPtr, "ObjectCollection", "Object collection", true, "ObjectCollection");
30 I_ASSIGN_TO(m_objectCollectionModelCompPtr, m_objectCollectionCompPtr, true);
31 I_ASSIGN(m_isSendItemSource, "IsSendItemSource", "Object collection", false, false);
32 I_ASSIGN(m_collectionIdAttrPtr, "CollectionId", "Collection-ID", false, "");
33 I_END_COMPONENT;
34
35protected:
36 // reimplemented (imtgql::IGqlSubscriberController)
37 virtual bool IsRequestSupported(const imtgql::CGqlRequest& gqlRequest) const override;
38
39 // reimplemented (icomp::CComponentBase)
40 virtual void OnComponentCreated() override;
41 virtual void OnComponentDestroyed() override;
42
43 // reimplemented (imod::CSingleModelObserverBase)
44 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
45
46protected:
47 I_REF(imtbase::IObjectCollection, m_objectCollectionCompPtr);
48 I_REF(imod::IModel, m_objectCollectionModelCompPtr);
49 I_ATTR(bool, m_isSendItemSource);
50 I_ATTR(QByteArray, m_collectionIdAttrPtr);
51};
52
53
54} // namespace imtservergql
55
56