ImagingTools Core SDK
ISubscriberEngine.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
5namespace imtrest
6{
7
8
9class IRequest;
10class IProtocolEngine;
11class IRequestServlet;
12class IResponse;
13class ITransport;
14class ISubscriber;
15
16
20class ISubscriberEngine: virtual public istd::IPolymorphic
21{
22public:
29 QObject* socketPtr,
30 const IRequestServlet& requestHandler,
31 const IProtocolEngine& engine) = 0;
32
36 virtual void UnRegisterSubscriber(QObject* socketPtr) = 0;
37
41 virtual const ISubscriber* GetSubscriber(const IRequest* requestPtr) const = 0;
42
46 virtual int GetSubscriberCount() const = 0;
47
51 virtual const ISubscriber* GetSubscriber(int index) const = 0;
52
53 virtual void OnModelUpdate(QByteArray modelId, const istd::IChangeable::ChangeSet& changeSet) const = 0;
54};
55
56
57} // namespace imtrest
58
59
virtual int GetSubscriberCount() const =0
virtual void UnRegisterSubscriber(QObject *socketPtr)=0
virtual const ISubscriber * GetSubscriber(const IRequest *requestPtr) const =0
virtual const ISubscriber * GetSubscriber(int index) const =0
virtual ISubscriber * RegisterSubscriber(QObject *socketPtr, const IRequestServlet &requestHandler, const IProtocolEngine &engine)=0