FeatherMC/src/DedicatedServer.h

28 lines
683 B
C
Raw Normal View History

2020-07-24 10:17:36 +01:00
#pragma once
2020-07-25 03:01:16 +01:00
#include "network/TCPListener.h"
2020-07-25 04:44:00 +01:00
#include "network/ServerStatus.h"
2020-07-29 01:46:31 +01:00
#include "network/IListenerInterface.h"
2020-07-24 10:17:36 +01:00
namespace Feather
{
2020-07-25 04:44:00 +01:00
class ServerProperties;
2020-07-29 01:46:31 +01:00
class DedicatedServer final : public Network::IListenerInterface
2020-07-24 10:17:36 +01:00
{
public:
2020-07-25 04:44:00 +01:00
DedicatedServer(ServerProperties* properties);
2020-07-24 10:17:36 +01:00
~DedicatedServer();
2020-07-29 01:46:31 +01:00
void OnClientConnect(Network::TCPClient&& client) override;
2020-07-29 15:34:10 +01:00
void OnClientDisconnect(const Network::TCPClient& client) override;
2020-07-29 01:46:31 +01:00
2020-07-24 10:17:36 +01:00
private:
2020-07-25 04:44:00 +01:00
ServerProperties* m_properties;
2020-07-25 03:01:16 +01:00
Network::TCPListener m_listener;
2020-07-25 04:44:00 +01:00
Network::ServerStatus m_status;
2020-07-29 01:46:31 +01:00
2020-07-29 15:34:10 +01:00
LockableList<Network::TCPClient> m_clients;
2020-07-24 10:17:36 +01:00
};
}