begin server
This commit is contained in:
36
include/server/IServerState.h
Normal file
36
include/server/IServerState.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include <server/IServerSocket.h>
|
||||
|
||||
namespace td {
|
||||
namespace server {
|
||||
|
||||
class Server;
|
||||
|
||||
class IServerState {
|
||||
protected:
|
||||
void SendPacket(PlayerID a_Id, const protocol::PacketBase& a_Packet);
|
||||
void SetNewState(const std::shared_ptr<IServerState>& a_NewState);
|
||||
|
||||
public:
|
||||
virtual void HandlePacket(PlayerID a_Id, const protocol::PacketBase& a_Packet) = 0;
|
||||
virtual void Update(float a_Delta) = 0;
|
||||
virtual void OnPlayerJoin(PlayerID a_Id) = 0;
|
||||
virtual void OnPlayerLeave(PlayerID a_Id) = 0;
|
||||
|
||||
IServerState(IServerSocket& a_Server);
|
||||
virtual ~IServerState() {}
|
||||
|
||||
private:
|
||||
IServerSocket& m_Socket;
|
||||
Server* m_Server;
|
||||
|
||||
void SetServer(Server* a_Server) {
|
||||
m_Server = a_Server;
|
||||
}
|
||||
|
||||
friend class Server;
|
||||
};
|
||||
|
||||
} // namespace server
|
||||
} // namespace td
|
||||
Reference in New Issue
Block a user