6#include <QtCore/QMutex>
9#include <ibase/IApplicationInfo.h>
10#include <ilog/TLoggerCompWrap.h>
11#include <ifile/IFileNameParam.h>
12#include <iprm/IIdParam.h>
15#include <imtrest/IRequestServlet.h>
16#include <imtrest/CHttpRequest.h>
29class CHttpServletCompBase:
30 public ilog::CLoggerComponentBase,
31 virtual public imtrest::IRequestServlet
34 typedef ilog::CLoggerComponentBase BaseClass;
36 I_BEGIN_BASE_COMPONENT(CHttpServletCompBase)
37 I_REGISTER_INTERFACE(IRequestServlet);
38 I_ASSIGN(m_commandIdAttrPtr,
"CommandId",
"List of command-ID used with corresponded handlers",
true,
"");
39 I_ASSIGN(m_commandIdCompPtr,
"CommandIdParam",
"Component provided list of command-ID used with corresponded handlers",
false,
"CommandIdParam");
40 I_ASSIGN(m_applicationInfoCompPtr,
"ApplicationInfo",
"Application info",
false,
"ApplicationInfo");
44 virtual bool IsCommandSupported(
const QByteArray& commandId)
const override;
45 virtual ConstResponsePtr ProcessRequest(
const imtrest::IRequest& request,
const QByteArray& subCommandId = QByteArray())
const override;
48 typedef QMap<QByteArray, QByteArray> HeadersMap;
50 virtual ConstResponsePtr OnGet(
51 const QByteArray& commandId,
52 const imtrest::IRequest::CommandParams& commandParams,
53 const HeadersMap& headers,
54 const imtrest::CHttpRequest& request)
const;
55 virtual ConstResponsePtr OnPost(
56 const QByteArray& commandId,
57 const imtrest::IRequest::CommandParams& commandParams,
58 const HeadersMap& headers,
59 const imtrest::CHttpRequest& request)
const;
60 virtual ConstResponsePtr OnDelete(
61 const QByteArray& commandId,
62 const imtrest::IRequest::CommandParams& commandParams,
63 const HeadersMap& headers,
64 const imtrest::CHttpRequest& request)
const;
65 virtual ConstResponsePtr OnPatch(
66 const QByteArray& commandId,
67 const imtrest::IRequest::CommandParams& commandParams,
68 const HeadersMap& headers,
69 const imtrest::CHttpRequest& request)
const;
70 virtual ConstResponsePtr OnPut(
71 const QByteArray& commandId,
72 const imtrest::IRequest::CommandParams& commandParams,
73 const HeadersMap& headers,
74 const imtrest::CHttpRequest& request)
const;
75 virtual ConstResponsePtr OnHead(
76 const QByteArray& commandId,
77 const imtrest::IRequest::CommandParams& commandParams,
78 const HeadersMap& headers,
79 const imtrest::CHttpRequest& request)
const;
80 virtual ConstResponsePtr OnOptions(
81 const QByteArray& commandId,
82 const imtrest::IRequest::CommandParams& commandParams,
83 const HeadersMap& headers,
84 const imtrest::CHttpRequest& request)
const;
85 virtual ConstResponsePtr OnUnknown(
86 const QByteArray& commandId,
87 const imtrest::IRequest::CommandParams& commandParams,
88 const HeadersMap& headers,
89 const imtrest::CHttpRequest& request)
const;
90 virtual ConstResponsePtr OnInvalid(
91 const QByteArray& commandId,
92 const imtrest::IRequest::CommandParams& commandParams,
93 const HeadersMap& headers,
94 const imtrest::CHttpRequest& request)
const;
97 virtual ConstResponsePtr OnRequestReceived(
const imtrest::CHttpRequest& request)
const;
98 virtual ConstResponsePtr CreateDefaultErrorResponse(
const QByteArray& errorString,
const imtrest::CHttpRequest& request)
const;
99 static void ExtractRequestInfo(
100 const imtrest::CHttpRequest& request,
101 QByteArray& commandId,
102 imtrest::IRequest::CommandParams& commandParams,
103 HeadersMap& headers);
106 I_ATTR(QByteArray, m_commandIdAttrPtr);
107 I_REF(iprm::IIdParam, m_commandIdCompPtr);
108 I_REF(ibase::IApplicationInfo, m_applicationInfoCompPtr);