aboutsummaryrefslogtreecommitdiff
path: root/src/zenhttp/servers/httpmulti.h
blob: 1897587a9f9803d826cc801db9f81610667998b0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 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 OnRegisterService(HttpService& Service) override;
	virtual void OnSetHttpRequestFilter(IHttpRequestFilter* RequestFilter) override;
	virtual int	 OnInitialize(int BasePort, std::filesystem::path DataDir) override;
	virtual void OnRun(bool IsInteractiveSession) override;
	virtual void OnRequestExit() override;
	virtual void OnClose() override;

	void AddServer(Ref<HttpServer> Server);

private:
	bool						 m_IsInitialized = false;
	Event						 m_ShutdownEvent;
	std::vector<Ref<HttpServer>> m_Servers;
};

}  // namespace zen