ImagingTools Core SDK
CNetworkEventInterceptor.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// Qt includes
6#include <QtNetwork/QNetworkReply>
7
8// ImtCore includes
9#include <imtqml/CGqlRequest.h>
10
11
12namespace imtqml
13{
14
15
16class CNetworkEventInterceptor: public QObject
17{
18 Q_OBJECT
19
20public:
21 static CNetworkEventInterceptor* Instance()
22 {
23 static CNetworkEventInterceptor instance;
24 return &instance;
25 }
26
27 void InterceptRequest(QNetworkReply* reply, CGqlRequest* gqlRequestPtr);
28
29public Q_SLOTS:
30 void OnReplyFinished();
31
32signals:
33 void unauthorized(QString requestBody, CGqlRequest* request);
34 void forbidden(QString requestBody, CGqlRequest* request);
35
36private:
37 QHash<QNetworkReply*, CGqlRequest*> m_replyOwners;
38};
39
40
41} // namespace imtqml
42
43
44Q_DECLARE_METATYPE(imtqml::CNetworkEventInterceptor*)
45