27 = std::function<void(std::optional<Json::Value>)>;
37 bool enable_cors =
false);
58 MHD_Connection* m_connection{};
59 std::stringstream m_request;
61 const char* m_origin{};
62 unsigned int m_code{};
67 MHD_Daemon* m_daemon{};
69 Json::StreamWriterBuilder m_builder;
71 std::mutex m_requests_mut;
72 std::map<request*, std::unique_ptr<request>> m_requests;
74 std::atomic<bool> m_running{
true};
78 static auto callback(
void* cls,
79 struct MHD_Connection* connection,
83 const char* upload_data,
84 size_t* upload_data_size,
85 void** con_cls) -> MHD_Result;
87 static auto send_cors_response(request* request_info) -> bool;
88 static auto send_response(std::string response, request* request_info)
91 auto handle_request(request* request_info) -> bool;
93 void handle_response(uint64_t
id,
94 request* request_info,
95 std::optional<Json::Value> resp);
97 static void request_complete(
void* cls,
98 struct MHD_Connection* connection,
100 MHD_RequestTerminationCode toe);