aboutsummaryrefslogtreecommitdiff
path: root/src/zenhttp/servers/httpmulti.h
blob: 53cf575682574593d2a7fec3548c328d413631e5 (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
// 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, std::filesystem::path DataDir) 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