begin server
This commit is contained in:
21
src/server/IServerSocket.cpp
Normal file
21
src/server/IServerSocket.cpp
Normal 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
|
||||
29
src/server/IServerState.cpp
Normal file
29
src/server/IServerState.cpp
Normal 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
1
src/server/Server.cpp
Normal file
@@ -0,0 +1 @@
|
||||
#include <server/Server.h>
|
||||
Reference in New Issue
Block a user