#ifndef QTHTTPREPLY_H #define QTHTTPREPLY_H #include #include #include #include class QtHttpServer; class QtHttpReply : public QObject { Q_OBJECT Q_ENUMS (StatusCode) public: explicit QtHttpReply (QtHttpServer * parent); enum StatusCode { Ok = 200, SeeOther = 303, BadRequest = 400, Forbidden = 403, NotFound = 404, MethodNotAllowed = 405, InternalError = 500, NotImplemented = 501, BadGateway = 502, ServiceUnavailable = 503, }; int getRawDataSize (void) const { return m_data.size(); }; bool useChunked (void) const { return m_useChunked; }; StatusCode getStatusCode (void) const { return m_statusCode; }; QByteArray getRawData (void) const { return m_data; }; QList getHeadersList (void) const { return m_headersHash.keys (); }; QByteArray getHeader (const QByteArray & header) const { return m_headersHash.value (header, QByteArray ()); }; static const QByteArray getStatusTextForCode (StatusCode statusCode); public slots: void setUseChunked (bool chunked = false) { m_useChunked = chunked; }; void setStatusCode (StatusCode statusCode) { m_statusCode = statusCode; }; void appendRawData (const QByteArray & data) { m_data.append(data); }; void addHeader (const QByteArray & header, const QByteArray & value); void resetRawData (void) { m_data.clear (); }; signals: void requestSendHeaders (void); void requestSendData (void); private: bool m_useChunked; StatusCode m_statusCode; QByteArray m_data; QtHttpServer * m_serverHandle; QHash m_headersHash; }; #endif // QTHTTPREPLY_H