ImagingTools Core SDK
CHttpSender.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/QAbstractSocket>
7
8// ImtCore includes
9#include <imtrest/ITransport.h>
10
11namespace imtrest
12{
13
14
15class CHttpSender: public QObject, virtual public ITransport
16{
17 Q_OBJECT
18public:
19 CHttpSender(QAbstractSocket* tcpSocketPtr);
20 // reimplemented (ITransport)
21 virtual bool SendResponse(ConstResponsePtr& response) const override;
22 virtual bool SendRequest(ConstRequestPtr& request) const override;
23
24protected:
25 virtual bool WriteStatus(int statusCode,const QByteArray& statusCodeLiteral, QAbstractSocket& socket) const;
26 virtual bool WriteHeader(const QByteArray& headerKey, const QByteArray& value, QAbstractSocket& socket) const;
27 virtual bool WriteBody(const QByteArray& data, QAbstractSocket& socket) const;
28
29 QAbstractSocket* m_tcpSocketPtr;
30};
31
32
33} // namespace imtrest
34
35