ImagingTools Core SDK
IResponse.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/QMap>
7
8// ACF includes
9#include <istd/TSmartPtr.h>
10#include <istd/TInterfacePtr.h>
11
12// ImtCore includes
13#include <imtrest/INetworkObject.h>
14
15
16namespace imtrest
17{
18
19
27class IResponse: virtual public INetworkObject
28{
29public:
30 typedef QMap<QByteArray, QByteArray> Headers;
31
36 virtual int GetStatusCode() const = 0;
37
41 virtual const QByteArray& GetData() const = 0;
42
46 virtual QByteArray GetDataTypeId() const = 0;
47
51 virtual Headers GetHeaders() const = 0;
52};
53
54
55typedef istd::TSmartPtr<const imtrest::IResponse> ConstResponsePtr;
56typedef istd::TUniqueInterfacePtr<imtrest::IResponse> IResponseUniquePtr;
57typedef istd::TSharedInterfacePtr<imtrest::IResponse> IResponseSharedPtr;
58
59
60} // namespace imtrest
61
62
63Q_DECLARE_METATYPE(imtrest::ConstResponsePtr)
64Q_DECLARE_METATYPE(imtrest::IResponseSharedPtr)
65
66
virtual QByteArray GetDataTypeId() const =0
virtual Headers GetHeaders() const =0
virtual const QByteArray & GetData() const =0
virtual int GetStatusCode() const =0