equal
deleted
inserted
replaced
25 namespace httpd { |
25 namespace httpd { |
26 |
26 |
27 class HTTPServer::HTTPServerImpl { |
27 class HTTPServer::HTTPServerImpl { |
28 public: |
28 public: |
29 MHD_Daemon* mhd = nullptr; |
29 MHD_Daemon* mhd = nullptr; |
|
30 std::shared_ptr<RequestHandler> requestHandler; |
30 }; |
31 }; |
31 |
32 |
32 HTTPServer* HTTPServer::create() { |
33 void HTTPServer::setRequestHandler(std::shared_ptr<RequestHandler> handler) { |
|
34 impl->requestHandler = handler; |
|
35 } |
|
36 |
|
37 HTTPServer* HTTPServer::create(HTTPServer::Options options) { |
33 HTTPServer::HTTPServerImpl* impl = new HTTPServer::HTTPServerImpl(); |
38 HTTPServer::HTTPServerImpl* impl = new HTTPServer::HTTPServerImpl(); |
34 |
39 |
35 void* acceptCallbackData = nullptr; |
40 void* acceptCallbackData = nullptr; |
36 MHD_AcceptPolicyCallback acceptCallback = [](void* cls, const struct sockaddr* addr, socklen_t addrlen) { |
41 MHD_AcceptPolicyCallback acceptCallback = [](void* cls, const struct sockaddr* addr, socklen_t addrlen) { |
37 return MHD_YES; |
42 return MHD_YES; |
46 return MHD_YES; |
51 return MHD_YES; |
47 }; |
52 }; |
48 |
53 |
49 |
54 |
50 impl->mhd = MHD_start_daemon(MHD_USE_INTERNAL_POLLING_THREAD, |
55 impl->mhd = MHD_start_daemon(MHD_USE_INTERNAL_POLLING_THREAD, |
51 8080, |
56 options.tcpPort, |
52 acceptCallback, acceptCallbackData, |
57 acceptCallback, acceptCallbackData, |
53 accessCallback, accessCallbackData, |
58 accessCallback, accessCallbackData, |
54 MHD_OPTION_THREAD_POOL_SIZE, 10, |
59 MHD_OPTION_THREAD_POOL_SIZE, 10, |
55 MHD_OPTION_CONNECTION_TIMEOUT, 60, |
60 MHD_OPTION_CONNECTION_TIMEOUT, 60, |
56 MHD_OPTION_END); |
61 MHD_OPTION_END); |