hyperion.ng
QtHttpClientWrapper.h
1 #ifndef QTHTTPCLIENTWRAPPER_H
2 #define QTHTTPCLIENTWRAPPER_H
3 
4 #include <QObject>
5 #include <QString>
6 
7 class QTcpSocket;
8 
9 class QtHttpRequest;
10 class QtHttpReply;
11 class QtHttpServer;
12 class WebSocketClient;
13 class WebJsonRpc;
14 
15 class QtHttpClientWrapper : public QObject {
16  Q_OBJECT
17 
18 public:
19  explicit QtHttpClientWrapper (QTcpSocket * sock, QtHttpServer * parent);
20 
21  static const char SPACE = ' ';
22  static const char COLON = ':';
23  static const QByteArray & CRLF;
24 
25  enum ParsingStatus {
26  ParsingError = -1,
27  AwaitingRequest = 0,
28  AwaitingHeaders = 1,
29  AwaitingContent = 2,
30  RequestParsed = 3
31  };
32 
33  QString getGuid (void);
35  void sendToClientWithReply (QtHttpReply * reply);
36 
37 private slots:
38  void onClientDataReceived (void);
39 
40 protected:
41  ParsingStatus sendReplyToClient (QtHttpReply * reply);
42 
43 protected slots:
44  void onReplySendHeadersRequested (void);
45  void onReplySendDataRequested (void);
46 
47 private:
48  QString m_guid;
49  ParsingStatus m_parsingStatus;
50  QTcpSocket * m_sockClient;
51  QtHttpRequest * m_currentRequest;
52  QtHttpServer * m_serverHandle;
53  WebSocketClient * m_websocketClient;
54  WebJsonRpc * m_webJsonRpc;
55 };
56 
57 #endif // QTHTTPCLIENTWRAPPER_H
Definition: WebJsonRpc.h:14
Definition: WebSocketClient.h:10
void sendToClientWithReply(QtHttpReply *reply)
Wrapper for sendReplyToClient(), handles m_parsingStatus and signal connect.
Definition: QtHttpClientWrapper.cpp:233
Definition: QtHttpRequest.h:17
Definition: QtHttpServer.h:37
Definition: QtHttpReply.h:11
Definition: QtHttpClientWrapper.h:15