11#ifndef SIMPLEWEBSERVER_H
12#define SIMPLEWEBSERVER_H
34 using RequestCallback = std::function<std::vector<char>(
const std::string&)>;
43 void RegisterEndpoint(
const std::string& szEndpoint, RequestCallback fnCallback);
51 std::atomic<int> m_nSocketFD;
52 std::atomic<bool> m_bRunning;
53 std::string m_szHtmlContent;
54 std::map<std::string, RequestCallback> m_mGetCallbacks;
55 std::mutex m_muDataMutex;
58 std::thread m_thAcceptThread;
59 std::vector<std::thread> m_vWorkerThreads;
60 std::mutex m_muThreadMutex;
A lightweight, multi-threaded HTTP server.
Definition SimpleWebServer.h:32
void RegisterEndpoint(const std::string &szEndpoint, RequestCallback fnCallback)
Registers a GET endpoint with a callback function.
Definition SimpleWebServer.cpp:79
void StopServer()
Stops the web server.
Definition SimpleWebServer.cpp:152
void StartServer()
Starts the web server.
Definition SimpleWebServer.cpp:92
void HandleClient(int nClientFD)
Handles an individual client connection.
Definition SimpleWebServer.cpp:227
void AcceptLoop()
Main loop to accept incoming connections.
Definition SimpleWebServer.cpp:190
~SimpleWebServer()
Destroy the Simple Web Server object.
Definition SimpleWebServer.cpp:50
void SetHtmlContent(const std::string &szHtml)
Mutator for the Html Content private member.
Definition SimpleWebServer.cpp:64