ImagingTools Core SDK
CGqlClientEngineComp.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 <icomp/CComponentBase.h>
7#include <ibase/IApplicationInfo.h>
8
9// ImtCore includes
10#include <imtcom/IServerConnectionInterface.h>
11#include <imtclientgql/IClientProtocolEngine.h>
12
13
14namespace imtclientgql
15{
16
17
18class CGqlClientEngineComp:
19 public icomp::CComponentBase,
21{
22public:
23 typedef icomp::CComponentBase BaseClass;
24
25 I_BEGIN_COMPONENT(CGqlClientEngineComp);
26 I_REGISTER_INTERFACE(imtclientgql::IClientProtocolEngine);
27 I_ASSIGN(m_serverConnectionCompPtr, "ServerConnectionInterface", "Server connnection settings", false, "ServerConnectionInterface");
28 I_ASSIGN(m_prefixServerAttrPtr, "ServerPrefix", "Prefix Server", false, "/");
29 I_ASSIGN(m_applicationInfoCompPtr, "ApplicationInfo", "Application info", false, "ApplicationInfo");
30 I_END_COMPONENT;
31
32 CGqlClientEngineComp();
33
34 // reimplemented (imtclientgql::IClientProtocolEngine)
35 virtual QNetworkRequest* CreateNetworkRequest(const imtgql::IGqlRequest& request, imtbase::IUrlParam* = nullptr) const override;
36
37private:
38 I_ATTR(QByteArray, m_prefixServerAttrPtr);
39 I_REF(imtcom::IServerConnectionInterface, m_serverConnectionCompPtr);
40 I_REF(ibase::IApplicationInfo, m_applicationInfoCompPtr);
41};
42
43
44} // namespace imtclientgql
45
46
Interface for describing server connection configuration with multi-protocol support.