ImagingTools Core SDK
CSlaveSubscriberControllerComp.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// ImtCore includes
6#include <imtservergql/CGqlPublisherCompBase.h>
7
8
9namespace imtservergql
10{
11
12
13class CSlaveSubscriberControllerComp:
14 public ilog::CLoggerComponentBase,
15 virtual public imtgql::IGqlSubscriberController
16{
17public:
18 typedef ilog::CLoggerComponentBase BaseClass;
19
20 I_BEGIN_COMPONENT(CSlaveSubscriberControllerComp);
21 I_REGISTER_INTERFACE(imtgql::IGqlSubscriberController)
22 I_ASSIGN_MULTI_0(m_subscriberControllerListCompPtr, "SubscriberController", "Slave subscriber controller", false);
23 I_END_COMPONENT;
24
25 // reimplemented (imtgql::IGqlSubscriberController)
26 virtual bool IsRequestSupported(const imtgql::CGqlRequest& gqlRequest) const override;
27 virtual bool RegisterSubscription(
28 const QByteArray& subscriptionId,
29 const imtgql::CGqlRequest& gqlRequest,
30 const imtrest::IRequest& networkRequest,
31 QString& errorMessage) override;
32 virtual bool UnregisterSubscription(const QByteArray& subscriptionId) override;
33
34protected:
35 I_MULTIREF(imtgql::IGqlSubscriberController, m_subscriberControllerListCompPtr);
36
37 typedef QMap<QByteArray, imtgql::IGqlSubscriberController*> PublisherMap;
38 PublisherMap m_publisherMap;
39};
40
41
42} // namespace imtservergql
43
44