HTTPServer.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef HTTPSERVER_H
  2. #define HTTPSERVER_H
  3. #include <QObject>
  4. #include <QString>
  5. #include <QMimeDatabase>
  6. #include "qhttpserverrequest.hpp"
  7. #include "qhttpserver.hpp"
  8. #include "qhttpserverresponse.hpp"
  9. using namespace qhttp::server;
  10. class HttpServer : public QObject
  11. {
  12. Q_OBJECT
  13. public:
  14. explicit HttpServer(QObject* parent);
  15. bool start();
  16. private slots:
  17. void handleRequest(QHttpRequest* request, QHttpResponse* response);
  18. void handleWebClientRequest(QHttpRequest* request, QHttpResponse* response);
  19. void handleResource(QHttpRequest* request, QHttpResponse* response);
  20. void handleRemoteController(QHttpRequest* request, QHttpResponse* response);
  21. void handleFilesRequest(QHttpRequest* request, QHttpResponse* response);
  22. void writeError(QHttpResponse* response, qhttp::TStatusCode errorCode);
  23. private:
  24. bool writeFile(const QString& file, QHttpResponse* response);
  25. void handleSoundsRequest(QHttpRequest* request, QHttpResponse* response);
  26. QHttpServer* m_server;
  27. QString m_baseUrl;
  28. quint16 m_port;
  29. QMimeDatabase m_mime;
  30. };
  31. #endif // HTTPSERVER_H