diff options
| author | Stefan Boberg <[email protected]> | 2023-05-02 10:01:47 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-05-02 10:01:47 +0200 |
| commit | 075d17f8ada47e990fe94606c3d21df409223465 (patch) | |
| tree | e50549b766a2f3c354798a54ff73404217b4c9af /zenhttp/httpsys.h | |
| parent | fix: bundle shouldn't append content zip to zen (diff) | |
| download | zen-075d17f8ada47e990fe94606c3d21df409223465.tar.xz zen-075d17f8ada47e990fe94606c3d21df409223465.zip | |
moved source directories into `/src` (#264)
* moved source directories into `/src`
* updated bundle.lua for new `src` path
* moved some docs, icon
* removed old test trees
Diffstat (limited to 'zenhttp/httpsys.h')
| -rw-r--r-- | zenhttp/httpsys.h | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/zenhttp/httpsys.h b/zenhttp/httpsys.h deleted file mode 100644 index d6bd34890..000000000 --- a/zenhttp/httpsys.h +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#pragma once - -#include <zenhttp/httpserver.h> - -#ifndef ZEN_WITH_HTTPSYS -# if ZEN_PLATFORM_WINDOWS -# define ZEN_WITH_HTTPSYS 1 -# else -# define ZEN_WITH_HTTPSYS 0 -# endif -#endif - -#if ZEN_WITH_HTTPSYS -# define _WINSOCKAPI_ -# include <zencore/windows.h> -# include <zencore/workthreadpool.h> -# include "iothreadpool.h" - -# include <http.h> - -namespace spdlog { -class logger; -} - -namespace zen { - -/** - * @brief Windows implementation of HTTP server based on http.sys - * - * This requires elevation to function - */ -class HttpSysServer : public HttpServer -{ - friend class HttpSysTransaction; - -public: - explicit HttpSysServer(unsigned int ThreadCount, unsigned int AsyncWorkThreadCount); - ~HttpSysServer(); - - // HttpServer interface implementation - - virtual int Initialize(int BasePort) override; - virtual void Run(bool TestMode) override; - virtual void RequestExit() override; - virtual void RegisterService(HttpService& Service) override; - - WorkerThreadPool& WorkPool() { return m_AsyncWorkPool; } - - inline bool IsOk() const { return m_IsOk; } - inline bool IsAsyncResponseEnabled() const { return m_IsAsyncResponseEnabled; } - -private: - int InitializeServer(int BasePort); - void Cleanup(); - - void StartServer(); - void OnHandlingRequest(); - void IssueNewRequestMaybe(); - - void RegisterService(const char* Endpoint, HttpService& Service); - void UnregisterService(const char* Endpoint, HttpService& Service); - -private: - spdlog::logger& m_Log; - spdlog::logger& m_RequestLog; - spdlog::logger& Log() { return m_Log; } - - bool m_IsOk = false; - bool m_IsHttpInitialized = false; - bool m_IsRequestLoggingEnabled = false; - bool m_IsAsyncResponseEnabled = true; - - WinIoThreadPool m_ThreadPool; - WorkerThreadPool m_AsyncWorkPool; - - std::vector<std::wstring> m_BaseUris; // eg: http://*:nnnn/ - HTTP_SERVER_SESSION_ID m_HttpSessionId = 0; - HTTP_URL_GROUP_ID m_HttpUrlGroupId = 0; - HANDLE m_RequestQueueHandle = 0; - std::atomic_int32_t m_PendingRequests{0}; - std::atomic_int32_t m_IsShuttingDown{0}; - int32_t m_MinPendingRequests = 16; - int32_t m_MaxPendingRequests = 128; - Event m_ShutdownEvent; -}; - -} // namespace zen -#endif |