7#include <QtNetwork/QHostAddress>
10#include <ilog/TLoggerCompWrap.h>
13#include <imtrest/IRequest.h>
14#include <imtrest/IRequestServlet.h>
21class IRequestEventHandler:
public istd::IPolymorphic
24 virtual void OnRequestDestroyed(IRequest* request) = 0;
28class CWebSocketRequest:
public QObject,
virtual public IRequest
50 CWebSocketRequest(
const IProtocolEngine& engine);
51 CWebSocketRequest(
const IRequestServlet& requestHandler,
const IProtocolEngine& engine);
54 QByteArrayList GetHeaders()
const;
55 void SetHeader(
const QByteArray &headerId,
const QByteArray &headerData);
56 QByteArray GetHeaderValue(
const QByteArray& headerType)
const;
58 QByteArray GetClientId()
const;
59 QHostAddress GetRemoteAddress()
const;
60 void SetBody(
const QByteArray& body);
61 void SetRequestHandler(
const IRequestServlet* requestHandlerPtr);
62 MethodType GetMethodType()
const;
63 void SetMethodType(MethodType methodType);
64 QByteArray GetQueryId()
const;
65 void RegisterRequestEventHandler(IRequestEventHandler* requestEventHandler);
66 void SetCommandId(
const QByteArray& commandId);
69 virtual RequestState GetState()
const override;
70 virtual QByteArray GetCommandId()
const override;
71 virtual CommandParams GetCommandParams()
const override;
72 virtual QByteArray GetBody()
const override;
73 virtual QByteArray GetRequestId()
const override;
74 virtual bool ParseDeviceData(QIODevice& device)
override;
77 virtual const IProtocolEngine& GetProtocolEngine()
const override;
80 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS)
override;
83 QHostAddress m_remoteAddress;
87 QByteArray m_clientId;
90 QByteArray m_commandId;
92 const IRequestServlet* m_requestHandlerPtr;
93 const IProtocolEngine& m_engine;
95 typedef QMap<QByteArray, QByteArray> HeaderMap;
98 QByteArray m_lastHeader;
99 QList<IRequestEventHandler*> m_requestEventHandlers;
100 QByteArray m_requestId;