diff options
| author | Stefan Boberg <[email protected]> | 2023-10-13 14:46:49 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-10-13 14:46:49 +0200 |
| commit | c3fad0e98576ff5dee3ee63725459d46e201fa34 (patch) | |
| tree | 91455786fac76ffb6a83ff24620329780ce08545 /src/zenhttp/servers/httpmulti.h | |
| parent | improved http.sys initialization diagnostics and amended logic for dedicated ... (diff) | |
| download | zen-c3fad0e98576ff5dee3ee63725459d46e201fa34.tar.xz zen-c3fad0e98576ff5dee3ee63725459d46e201fa34.zip | |
support for multiple http servers (#473)
* added support for having multiple http servers active in one session
* added configuration API to pluggable transports
* removed pimpl pattern from some pluggable transports implementations
Diffstat (limited to 'src/zenhttp/servers/httpmulti.h')
| -rw-r--r-- | src/zenhttp/servers/httpmulti.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/zenhttp/servers/httpmulti.h b/src/zenhttp/servers/httpmulti.h new file mode 100644 index 000000000..d5b21d3c3 --- /dev/null +++ b/src/zenhttp/servers/httpmulti.h @@ -0,0 +1,32 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include <zencore/thread.h> +#include <zenhttp/httpserver.h> + +#include <memory> + +namespace zen { + +class HttpMultiServer : public HttpServer +{ +public: + HttpMultiServer(); + ~HttpMultiServer(); + + virtual void RegisterService(HttpService& Service) override; + virtual int Initialize(int BasePort) override; + virtual void Run(bool IsInteractiveSession) override; + virtual void RequestExit() override; + virtual void Close() override; + + void AddServer(Ref<HttpServer> Server); + +private: + bool m_IsInitialized = false; + Event m_ShutdownEvent; + std::vector<Ref<HttpServer>> m_Servers; +}; + +} // namespace zen |