begin server

This commit is contained in:
2025-08-06 12:53:33 +02:00
parent 9c5ad07747
commit 599dfa0cee
7 changed files with 189 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
#include <server/IServerSocket.h>
namespace td {
namespace server {
void IServerSocket::OnConnectPeer(PeerID a_PeerId) {
m_Ids.AddConnection(a_PeerId);
OnConnect(m_Ids.GetPlayerId(a_PeerId));
}
void IServerSocket::OnDisconnectPeer(PeerID a_PeerId) {
OnDisconnect(m_Ids.GetPlayerId(a_PeerId));
m_Ids.RemovePeer(a_PeerId);
}
void IServerSocket::OnReceivePeer(PeerID a_PeerId, const protocol::PacketBase& a_Packet) {
OnReceive(m_Ids.GetPlayerId(a_PeerId), a_Packet);
}
} // namespace server
} // namespace td

View File

@@ -0,0 +1,29 @@
#include <server/IServerState.h>
#include <server/Server.h>
namespace td {
namespace server {
IServerState::IServerState(IServerSocket& a_Socket) : m_Socket(a_Socket) {
// TODO: don't do it like this
m_Socket.OnConnect.Connect([this](PlayerID a_Player){
OnPlayerJoin(a_Player);
});
m_Socket.OnDisconnect.Connect([this](PlayerID a_Player){
OnPlayerLeave(a_Player);
});
m_Socket.OnReceive.Connect([this](PlayerID a_Player, const protocol::PacketBase& a_Packet){
HandlePacket(a_Player, a_Packet);
});
}
void IServerState::SendPacket(PlayerID a_Id, const protocol::PacketBase& a_Packet) {
m_Socket.Send(a_Id, a_Packet);
}
void IServerState::SetNewState(const std::shared_ptr<IServerState>& a_NewState) {
m_Server->UpdateState(a_NewState);
}
} // namespace server
} // namespace td

1
src/server/Server.cpp Normal file
View File

@@ -0,0 +1 @@
#include <server/Server.h>