aboutsummaryrefslogtreecommitdiff
path: root/src/zenhttp/httpserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenhttp/httpserver.cpp')
-rw-r--r--src/zenhttp/httpserver.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/zenhttp/httpserver.cpp b/src/zenhttp/httpserver.cpp
index 5312e80a2..a98a3c9bb 100644
--- a/src/zenhttp/httpserver.cpp
+++ b/src/zenhttp/httpserver.cpp
@@ -714,11 +714,8 @@ enum class HttpServerClass
kHttpNull
};
-// Implemented in httpsys.cpp
-Ref<HttpServer> CreateHttpSysServer(int Concurrency, int BackgroundWorkerThreads);
-
Ref<HttpServer>
-CreateHttpServer(std::string_view ServerClass)
+CreateHttpServer(const HttpServerConfig& Config)
{
using namespace std::literals;
@@ -730,15 +727,15 @@ CreateHttpServer(std::string_view ServerClass)
Class = HttpServerClass::kHttpAsio;
#endif
- if (ServerClass == "asio"sv)
+ if (Config.ServerClass == "asio"sv)
{
Class = HttpServerClass::kHttpAsio;
}
- else if (ServerClass == "httpsys"sv)
+ else if (Config.ServerClass == "httpsys"sv)
{
Class = HttpServerClass::kHttpSys;
}
- else if (ServerClass == "null"sv)
+ else if (Config.ServerClass == "null"sv)
{
Class = HttpServerClass::kHttpNull;
}
@@ -748,12 +745,15 @@ CreateHttpServer(std::string_view ServerClass)
default:
case HttpServerClass::kHttpAsio:
ZEN_INFO("using asio HTTP server implementation");
- return Ref<HttpServer>(new HttpAsioServer());
+ return Ref<HttpServer>(new HttpAsioServer(Config.ThreadCount));
#if ZEN_WITH_HTTPSYS
case HttpServerClass::kHttpSys:
ZEN_INFO("using http.sys server implementation");
- return Ref<HttpServer>(new HttpSysServer(std::thread::hardware_concurrency(), /* background worker threads */ 16));
+ return Ref<HttpServer>(new HttpSysServer({.ThreadCount = Config.ThreadCount,
+ .AsyncWorkThreadCount = Config.HttpSys.AsyncWorkThreadCount,
+ .IsAsyncResponseEnabled = Config.HttpSys.IsAsyncResponseEnabled,
+ .IsRequestLoggingEnabled = Config.HttpSys.IsRequestLoggingEnabled}));
#endif
case HttpServerClass::kHttpNull: