ImagingTools Core SDK
CTcpResponse.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/QObject>
7
8// ImtCore includes
9#include <imtrest/IResponse.h>
10
11
12namespace imtrest
13{
14
15
16class CTcpResponse: public QObject, virtual public IResponse
17{
18 Q_OBJECT
19public:
20 CTcpResponse(
21 int statusCode,
22 const QByteArray& data,
23 const QByteArray& dataTypeId,
24 const IProtocolEngine& engine);
25
26 void SetData(const QByteArray& data);
27 void SetHeaders(const Headers& headers);
28
29 // reimplemented (IResponse)
30 virtual int GetStatusCode() const override;
31 virtual const QByteArray& GetData() const override;
32 virtual QByteArray GetDataTypeId() const override;
33 virtual Headers GetHeaders() const override;
34
35 // reimplemented (INetworkObject)
36 virtual const IProtocolEngine& GetProtocolEngine() const override;
37
38 // reimplemented (istd::IChangeable)
39 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
40
41private:
42 const IProtocolEngine& m_engine;
43
44 Headers m_headers;
45 int m_statusCode;
46 QByteArray m_data;
47 QByteArray m_dataTypeId;
48};
49
50
51} // namespace imtrest
52
53