From 5df63c0bc7e3d6f1850d04f5bafbae2dd6fa619e Mon Sep 17 00:00:00 2001 From: Nikita Kostovsky Date: Fri, 14 Nov 2025 21:05:12 +0100 Subject: organize things a bit, populate ICamera --- src/protocols/httpserver.h | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/protocols/httpserver.h (limited to 'src/protocols/httpserver.h') diff --git a/src/protocols/httpserver.h b/src/protocols/httpserver.h new file mode 100644 index 0000000..86b6ad6 --- /dev/null +++ b/src/protocols/httpserver.h @@ -0,0 +1,47 @@ +#pragma once + +// qt +#include +#include +// #include + +// orpheus +#include "iprotocol.h" + +class ICamera; +class QHttpServer; + +class HttpServer : public ProtocolBase +{ + // 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); + ~HttpServer() override = default; + + // TODO: methods starting with GET_/POST_ will be routed automatically +public: + QHttpServerResponse GET_pixels(); + + QHttpServerResponse POST_params(const QHttpServerRequest &request); + QHttpServerResponse GET_params(); + +private: + QHostAddress m_address{DefaultAddress}; + uint16_t m_port{DefaultPort}; + + std::shared_ptr m_server; +}; -- cgit v1.2.3-70-g09d2