ImagingTools Core SDK
IRequest.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// ACF includes
6#include <istd/TSmartPtr.h>
7#include <istd/TInterfacePtr.h>
8
9// ImtCore includes
10#include <imtrest/INetworkObject.h>
11
12
13namespace imtrest
14{
15
16
20class IRequest: virtual public INetworkObject
21{
22public:
23 enum RequestState
24 {
25 RS_NON_STARTED,
26 RS_START_MESSAGE,
27 RS_URL,
28 RS_STATUS,
29 RS_HEADERS,
30 RS_HEADERS_COMPLETE,
31 RS_BODY,
32 RS_MESSAGE_COMPLETE,
33 RS_CHUNK_HEADER,
34 RS_CHUNK_COMPLETE
35 };
36
37 typedef QMap<QByteArray, QByteArray> CommandParams;
38
39 virtual RequestState GetState() const = 0;
40 virtual QByteArray GetCommandId() const = 0;
41 virtual CommandParams GetCommandParams() const = 0;
42 virtual QByteArray GetBody() const = 0;
43 virtual QByteArray GetRequestId() const = 0;
44 virtual bool ParseDeviceData(QIODevice& device) = 0;
45};
46
47
48typedef istd::TSmartPtr<const imtrest::IRequest> ConstRequestPtr;
49typedef istd::TUniqueInterfacePtr<imtrest::IRequest> IRequestUniquePtr;
50
51
52} // namespace imtrest
53
54