ImagingTools Core SDK
CWebSocketProtocolEngineComp.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#include <imtrest/CWebSocketSender.h>
14#include <imtrest/http_parser.h>
15
16
17namespace imtrest
18{
19
20
21class CWebSocketProtocolEngineComp:
22 public ilog::CLoggerComponentBase,
23 virtual public IProtocolEngine
24{
25public:
26 typedef ilog::CLoggerComponentBase BaseClass;
27
28 I_BEGIN_COMPONENT(CWebSocketProtocolEngineComp);
29 I_REGISTER_INTERFACE(IProtocolEngine)
30 I_END_COMPONENT
31
32 // reimplemented (IProtocolEngine)
33 virtual QByteArray GetProtocolTypeId() const override;
34 virtual const iser::IVersionInfo* GetProtocolVersion() const override;
35 virtual bool GetProtocolStatusCode(int statusCode, int& protocolStatusCode, QByteArray& statusCodeLiteral) const override;
36 virtual imtrest::IRequestUniquePtr CreateRequest(const IRequestServlet& requestHandler) const override;
37 virtual imtrest::IRequestUniquePtr CreateRequestForSend(
38 const IRequestServlet& requestHandler,
39 int statusCode,
40 const QByteArray& data,
41 const QByteArray& dataTypeId) const override;
42 virtual imtrest::IResponseUniquePtr CreateResponse(
43 const IRequest& request,
44 int statusCode,
45 const QByteArray& data,
46 const QByteArray& dataTypeId) const override;
47
48protected:
49 // reimplemented (icomp::CComponentBase)
50 virtual void OnComponentCreated() override;
51};
52
53
54} // namespace imtrest
55
56