#pragma once // qt #include #include // #include class ICamera; class QHttpServer; class HttpServer // : public QObject { // Q_OBJECT private: struct Stats { uint64_t GET_pixels_us{0}; } m_stats{0}; public: static constexpr auto DefaultAddress = QHostAddress::Any; static constexpr uint16_t DefaultPort{8080}; public: explicit HttpServer(ICamera *camera, // QObject *parent = nullptr, const QHostAddress &address = DefaultAddress, const uint16_t port = DefaultPort); // TODO: methods starting with GET_/POST_ will be routed automatically public: QHttpServerResponse GET_pixels(); private: // std::weak_ptr m_camera; ICamera *m_camera{nullptr}; QHostAddress m_address{DefaultAddress}; uint16_t m_port{DefaultPort}; std::shared_ptr m_server; };