ImagingTools Core SDK
CTcpProtocolEngineComp.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 <QtCore/QByteArray>
7
8// ACF includes
9#include <ilog/TLoggerCompWrap.h>
10
11// ImtCore includes
12#include <imtrest/IProtocolEngine.h>
13
14
15namespace imtrest
16{
17
18
19class CTcpProtocolEngineComp:
20 public ilog::CLoggerComponentBase,
21 virtual public IProtocolEngine
22{
23public:
24 typedef ilog::CLoggerComponentBase BaseClass;
25
26 I_BEGIN_COMPONENT(CTcpProtocolEngineComp);
27 I_REGISTER_INTERFACE(IProtocolEngine)
28 I_END_COMPONENT
29
30 // reimplemented (IProtocolEngine)
31 virtual QByteArray GetProtocolTypeId() const override;
32 virtual const iser::IVersionInfo* GetProtocolVersion() const override;
33 virtual bool GetProtocolStatusCode(int statusCode, int& protocolStatusCode, QByteArray& statusCodeLiteral) const override;
34 virtual imtrest::IRequestUniquePtr CreateRequest(const IRequestServlet& requestHandler) const override;
35 virtual imtrest::IRequestUniquePtr CreateRequestForSend(
36 const IRequestServlet& requestHandler,
37 int statusCode,
38 const QByteArray& data,
39 const QByteArray& dataTypeId) const override;
40 virtual imtrest::IResponseUniquePtr CreateResponse(
41 const IRequest& request,
42 int statusCode,
43 const QByteArray& data,
44 const QByteArray& dataTypeId) const override;
45};
46
47
48} // namespace imtrest
49
50