ImagingTools Core SDK
CSubscriberCompBase.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 <ilog/TLoggerCompWrap.h>
7
8// ImtCore includes
9#include <imtclientgql/IGqlSubscriptionManager.h>
10
11
12namespace imtclientgql
13{
14
15
16class CSubscriberCompBase:
17 public ilog::CLoggerComponentBase,
18 virtual public IGqlSubscriptionClient
19{
20public:
21 typedef ilog::CLoggerComponentBase BaseClass;
22
23 I_BEGIN_COMPONENT(CSubscriberCompBase);
24 I_REGISTER_INTERFACE(imtclientgql::IGqlSubscriptionClient);
25 I_ASSIGN(m_subscriptionManagerCompPtr, "SubscriptionManager", "Subscription manager", true, "SubscriptionManager");
26 I_ASSIGN_MULTI_0(m_commandAttrPtr, "Command", "Command for subscription", true);
27 I_END_COMPONENT;
28
29protected:
30 // reimplemented (imtgql::IGqlSubscriptionClient)
31 virtual void OnResponseReceived(
32 const QByteArray& subscriptionId,
33 const QByteArray& subscriptionData) override;
34 virtual void OnSubscriptionStatusChanged(
35 const QByteArray& subscriptionId,
36 const SubscriptionStatus& status,
37 const QString& message) override;
38
39 QByteArray GetCommandId(const QByteArray& subscriptionId) const;
40
41 // reimplemented (icomp::CComponentBase)
42 virtual void OnComponentCreated() override;
43
44protected:
45 QByteArrayList m_subscriptionIds;
46
47protected:
48 I_REF(imtclientgql::IGqlSubscriptionManager, m_subscriptionManagerCompPtr);
49 I_MULTIATTR(QByteArray, m_commandAttrPtr);
50};
51
52
53} // namespace imtclientgql
54
55