6#include <QtCore/QMutex>
9#include <ilog/TLoggerCompWrap.h>
12#include <imtrest/IRequestServlet.h>
19class CHttpRootServletComp:
20 public ilog::CLoggerComponentBase,
21 virtual public IRequestServlet
24 typedef ilog::CLoggerComponentBase BaseClass;
26 I_BEGIN_COMPONENT(CHttpRootServletComp);
27 I_REGISTER_INTERFACE(IRequestServlet);
28 I_ASSIGN_MULTI_0(m_requestHandlersCompPtr,
"RequestHandlers",
"List of request handlers",
false);
29 I_ASSIGN(m_autoCompressionAttrPtr,
"AutoCompression",
"Automatic data compression",
true,
false);
30 I_ASSIGN(m_compressionLevelAttrPtr,
"CompressionLevel",
"Compression level for automatic compression",
true, 8);
34 virtual bool IsCommandSupported(
const QByteArray& commandId)
const override;
35 virtual imtrest::ConstResponsePtr ProcessRequest(
const IRequest& request,
const QByteArray& subCommandId = QByteArray())
const override;
45 virtual IRequestServlet* FindRequestHandler(
const QByteArray& commandId)
const;
48 virtual void OnComponentCreated()
override;
51 I_MULTIATTR(QByteArray, m_commandIdsAttrPtr);
52 I_MULTIREF(IRequestServlet, m_requestHandlersCompPtr);
53 I_ATTR(
bool, m_autoCompressionAttrPtr);
54 I_ATTR(
int, m_compressionLevelAttrPtr);
56 typedef QMap<QByteArray, IRequestServlet*> HandlersMap;
58 HandlersMap m_handlersMap;
59 mutable QMutex m_handlersMapMutex;