ImagingTools Core SDK
CHttpHtmlFolderBasedServletComp.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/QDir>
7#include <QtCore/QFile>
8#include <QtCore/QTextStream>
9
10// ACF includes
11#include <ifile/IFileNameParam.h>
12#include <ilog/TLoggerCompWrap.h>
13
14// ImtCore includes
15#include <imtrest/IRequestServlet.h>
16
17
18namespace imtrest
19{
20
21
26 public ilog::CLoggerComponentBase,
27 virtual public IRequestServlet
28{
29public:
30 typedef ilog::CLoggerComponentBase BaseClass;
31
33
34 I_BEGIN_COMPONENT(CHttpHtmlFolderBasedServletComp);
35 I_REGISTER_INTERFACE(IRequestServlet);
36 I_ASSIGN(m_commandIdAttrPtr, "CommandId", "List of command-ID used with corresponded handlers", true, "");
37 I_ASSIGN(m_homeDirPathAttrPtr, "HomePath", "Home path", true, QDir::currentPath());
38 I_ASSIGN(m_pathsProblemsAutoSolveAttrPtr, "AutoSolvePathsProblems", "If 'true' servelt'll automatically solve paths problems", true, true);
39 I_ASSIGN(m_fileTemplatePathCompPtr, "FileTemplateHomePath", "FileTemplate based Home path\n Note: type is ignored only value matters \n Warning: overwrites HomePath!", false, "FileTemplatePath");
40 I_END_COMPONENT
41
42 QByteArray Generate(const QString& directoryPath, const QString& commandId = QString()) const;
43 QByteArray GenerateSingleEntry(const QFileInfo& fileInfo, const QString& commandId = QString()) const;
44 QByteArray GetMimeType(const QFileInfo& fileInfo) const;
45
46 // reimplemented (IRequestServlet)
47 virtual bool IsCommandSupported(const QByteArray& commandId) const override;
48 virtual ConstResponsePtr ProcessRequest(const IRequest& request, const QByteArray& subCommandId = QByteArray()) const override;
49
50private:
51 I_ATTR (QString, m_homeDirPathAttrPtr);
52 I_ATTR (bool, m_pathsProblemsAutoSolveAttrPtr);
53 I_REF(ifile::IFileNameParam, m_fileTemplatePathCompPtr);
54 I_ATTR(QByteArray, m_commandIdAttrPtr);
55
56 QByteArray m_beginOfMessage;
57 QByteArray m_endOfMessage;
58};
59
60
61} // namespace imtrest
62
63
The CHttpHtmlFolderBasedHandlerComp class generates HTML-document with list of objects for all the fi...