ImagingTools Core SDK
CConnectionStatusSubscriberControllerComp.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 <imtcom/IConnectionStatusProvider.h>
10#include <imtservergql/CGqlPublisherCompBase.h>
11
12
13namespace imtservergql
14{
15
16
17class CConnectionStatusSubscriberControllerComp:
18 public imtservergql::CGqlPublisherCompBase,
19 public imod::TSingleModelObserverBase<istd::IChangeable>
20{
21public:
22 typedef imtservergql::CGqlPublisherCompBase BaseClass;
23 typedef imod::TSingleModelObserverBase<istd::IChangeable> BaseClass2;
24
25 I_BEGIN_COMPONENT(CConnectionStatusSubscriberControllerComp);
26 I_ASSIGN(m_connectionStatusProviderCompPtr, "LoginStatusProvider", "Login status provider", true, "LoginStatusProvider");
27 I_ASSIGN_TO(m_connectionStatusModelCompPtr, m_connectionStatusProviderCompPtr, true);
28 I_END_COMPONENT;
29
30protected:
31 QString CreateBodySubscription() const;
32
33 // reimplemented (imtservergql::CGqlPublisherCompBase)
34 virtual bool RegisterSubscription(
35 const QByteArray& subscriptionId,
36 const imtgql::CGqlRequest& gqlRequest,
37 const imtrest::IRequest& networkRequest,
38 QString& errorMessage) override;
39
40 // reimplemented (imod::CSingleModelObserverBase)
41 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
42
43 // reimplemented (icomp::CComponentBase)
44 virtual void OnComponentCreated() override;
45 virtual void OnComponentDestroyed() override;
46
47protected:
48 I_REF(imtcom::IConnectionStatusProvider, m_connectionStatusProviderCompPtr);
49 I_REF(imod::IModel, m_connectionStatusModelCompPtr);
50};
51
52
53} // namespace imtservergql
54
55
Interface for monitoring network connection status with observable state changes.