knxdisplay/main/WebServer.hpp
2026-01-22 21:32:21 +01:00

35 lines
1.0 KiB
C++

#pragma once
#include "esp_http_server.h"
class WebServer {
public:
static WebServer& instance();
void start();
void stop();
bool isRunning() const { return server_ != nullptr; }
private:
WebServer() = default;
~WebServer();
WebServer(const WebServer&) = delete;
WebServer& operator=(const WebServer&) = delete;
httpd_handle_t server_ = nullptr;
// HTTP handlers
static esp_err_t rootHandler(httpd_req_t* req);
static esp_err_t staticFileHandler(httpd_req_t* req);
static esp_err_t imagesHandler(httpd_req_t* req);
static esp_err_t getConfigHandler(httpd_req_t* req);
static esp_err_t postConfigHandler(httpd_req_t* req);
static esp_err_t postSaveHandler(httpd_req_t* req);
static esp_err_t postResetHandler(httpd_req_t* req);
static esp_err_t getKnxAddressesHandler(httpd_req_t* req);
// Helper functions
static const char* getContentType(const char* filepath);
static esp_err_t sendFile(httpd_req_t* req, const char* filepath);
};