ImagingTools Core SDK
CHttpFileProviderBasedServletComp.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 <ifile/IFileNameParam.h>
7#include <ilog/TLoggerCompWrap.h>
8
9// ImtCore includes
10#include <imtrest/IBinaryDataProvider.h>
11#include <imtrest/CHttpServletCompBase.h>
12
13
14namespace imtrest
15{
16
17
21class CHttpFileProviderBasedServletComp: public CHttpServletCompBase
22{
23public:
24 typedef CHttpServletCompBase BaseClass;
25
26 I_BEGIN_COMPONENT(CHttpFileProviderBasedServletComp);
27 I_ASSIGN(m_fileIdCommandParamAttrPtr, "FileIdCommandParam", "The command param for data providers", true, "FileId");
28 I_ASSIGN(m_limitIdCommandParamAttrPtr, "LimitIdCommandParam", "Defines maximum size of data to be read", true, "Limit");
29 I_ASSIGN(m_offsetIdCommandParamAttrPtr, "OffsetIdCommandParam", "Defines the position to start reading data", true, "Offset");
30 I_ASSIGN_MULTI_0(m_binaryDataProvidersCompPtr, "BinaryDataProviders", "Binary data providers", true);
31 I_END_COMPONENT
32
33 QByteArray GetMimeType(QByteArray fileSuffix) const;
34
35 // reimplemented (IRequestHandler)
36 virtual ConstResponsePtr OnGet(
37 const QByteArray& commandId,
38 const imtrest::IRequest::CommandParams& commandParams,
39 const HeadersMap& headers,
40 const imtrest::CHttpRequest& request) const override;
41
42protected:
43 I_ATTR(QString, m_fileIdCommandParamAttrPtr);
44 I_ATTR(QString, m_limitIdCommandParamAttrPtr);
45 I_ATTR(QString, m_offsetIdCommandParamAttrPtr);
46 I_MULTIREF(imtrest::IBinaryDataProvider, m_binaryDataProvidersCompPtr);
47
48private:
49 QByteArray m_beginOfMessage;
50 QByteArray m_endOfMessage;
51};
52
53
54} // namespace imtrest
55
56
The CHttpFileProviderBasedServletComp class generates HTML-document with list of objects for all the ...
The IBinaryDataProvider class provides file from disc, resources or memory.