bonus-edge-proxy/src/web/web_server.h

56 lines
1.4 KiB
C
Raw Normal View History

2025-10-15 14:27:21 +08:00
// 文件名: src/web/web_server.h
#ifndef WEB_SERVER_H
#define WEB_SERVER_H
#include "crow.h" // 引入 Crow 库的头文件
#include "systemMonitor/system_monitor.h"
#include <thread>
/**
* @brief Web服务器模块
* * HTTP服务器RESTful API接口
* 线io_context事件循环
*/
class WebServer {
public:
/**
* @brief
* @param monitor SystemMonitor的引用
* @param port Web服务器监听的端口号8080
*/
WebServer(SystemMonitor::SystemMonitor& monitor, uint16_t port = 8080);
/**
* @brief
* * 退Web服务线程能够被安全地停止和清理
*/
~WebServer();
// 禁止拷贝和赋值,因为该类管理着一个线程资源
WebServer(const WebServer&) = delete;
WebServer& operator=(const WebServer&) = delete;
/**
* @brief 线Web服务
*/
void start();
/**
* @brief Web服务并等待线程退出
*/
void stop();
private:
/**
* @brief API路由URL路径
*/
void setup_routes();
crow::SimpleApp m_app; // Crow 应用实例
SystemMonitor::SystemMonitor& m_monitor;
uint16_t m_port;
std::thread m_thread; // 运行Web服务的后台线程
};
#endif // WEB_SERVER_H