refactor IServerSocket
This commit is contained in:
@@ -13,7 +13,7 @@ class IServerSocket {
|
|||||||
utils::Signal<PlayerID> OnDisconnect;
|
utils::Signal<PlayerID> OnDisconnect;
|
||||||
utils::Signal<PlayerID, const protocol::PacketBase&> OnReceive;
|
utils::Signal<PlayerID, const protocol::PacketBase&> OnReceive;
|
||||||
|
|
||||||
virtual void Send(PlayerID, const protocol::PacketBase&) = 0;
|
void Send(PlayerID a_PlayerId, const protocol::PacketBase& a_Packet);
|
||||||
|
|
||||||
IServerSocket() {}
|
IServerSocket() {}
|
||||||
virtual ~IServerSocket() {}
|
virtual ~IServerSocket() {}
|
||||||
@@ -25,6 +25,7 @@ class IServerSocket {
|
|||||||
void OnConnectPeer(PeerID a_PeerId);
|
void OnConnectPeer(PeerID a_PeerId);
|
||||||
void OnDisconnectPeer(PeerID a_PeerId);
|
void OnDisconnectPeer(PeerID a_PeerId);
|
||||||
void OnReceivePeer(PeerID a_PeerId, const protocol::PacketBase& a_Packet);
|
void OnReceivePeer(PeerID a_PeerId, const protocol::PacketBase& a_Packet);
|
||||||
|
virtual void SendPeer(PeerID a_PeerId, const protocol::PacketBase& a_Packet) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace server
|
} // namespace server
|
||||||
|
|||||||
20
include/server/socket/FakeSocket.h
Normal file
20
include/server/socket/FakeSocket.h
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <server/IServerSocket.h>
|
||||||
|
|
||||||
|
namespace td {
|
||||||
|
namespace server {
|
||||||
|
|
||||||
|
class FakeSocket : public IServerSocket {
|
||||||
|
public:
|
||||||
|
FakeSocket() {}
|
||||||
|
~FakeSocket() {}
|
||||||
|
|
||||||
|
utils::Signal<PeerID, const protocol::PacketBase&> OnSend;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void SendPeer(PeerID a_Peer, const protocol::PacketBase& a_Packet) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace server
|
||||||
|
} // namespace td
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <server/IServerSocket.h>
|
|
||||||
|
|
||||||
namespace td {
|
|
||||||
namespace server {
|
|
||||||
|
|
||||||
class TcpSocket : public IServerSocket {
|
|
||||||
private:
|
|
||||||
/* data */
|
|
||||||
public:
|
|
||||||
TcpSocket(/* args */) {}
|
|
||||||
~TcpSocket() {}
|
|
||||||
|
|
||||||
virtual void Send(PlayerID, const protocol::PacketBase&) {}
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace server
|
|
||||||
} // namespace td
|
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
#include <sp/io/StdIo.h>
|
#include <sp/io/StdIo.h>
|
||||||
|
|
||||||
#include <server/Server.h>
|
#include <server/Server.h>
|
||||||
#include <server/socket/TcpSocket.h>
|
#include <server/socket/FakeSocket.h>
|
||||||
#include <server/state/LobbyState.h>
|
#include <server/state/LobbyState.h>
|
||||||
|
|
||||||
class WorldApply : public td::protocol::PacketHandler {
|
class WorldApply : public td::protocol::PacketHandler {
|
||||||
@@ -133,7 +133,7 @@ int main(int argc, char** argv) {
|
|||||||
|
|
||||||
|
|
||||||
// server
|
// server
|
||||||
auto socket = std::make_shared<td::server::TcpSocket>();
|
auto socket = std::make_shared<td::server::FakeSocket>();
|
||||||
td::server::Server server(socket);
|
td::server::Server server(socket);
|
||||||
server.UpdateState(std::make_shared<td::server::LobbyState>());
|
server.UpdateState(std::make_shared<td::server::LobbyState>());
|
||||||
server.Update(1.0f);
|
server.Update(1.0f);
|
||||||
|
|||||||
@@ -17,5 +17,9 @@ void IServerSocket::OnReceivePeer(PeerID a_PeerId, const protocol::PacketBase& a
|
|||||||
OnReceive(m_Ids.GetPlayerId(a_PeerId), a_Packet);
|
OnReceive(m_Ids.GetPlayerId(a_PeerId), a_Packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IServerSocket::Send(PlayerID a_PlayerId, const protocol::PacketBase& a_Packet) {
|
||||||
|
SendPeer(m_Ids.GetPeerId(a_PlayerId), a_Packet);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace server
|
} // namespace server
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
|||||||
11
src/server/socket/FakeSocket.cpp
Normal file
11
src/server/socket/FakeSocket.cpp
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#include <server/socket/FakeSocket.h>
|
||||||
|
|
||||||
|
namespace td {
|
||||||
|
namespace server {
|
||||||
|
|
||||||
|
void FakeSocket::SendPeer(PeerID a_Peer, const protocol::PacketBase& a_Packet) {
|
||||||
|
OnSend(a_Peer, a_Packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace server
|
||||||
|
} // namespace td
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#include <server/socket/TcpSocket.h>
|
|
||||||
|
|
||||||
namespace td {
|
|
||||||
namespace server {
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace server
|
|
||||||
} // namespace td
|
|
||||||
Reference in New Issue
Block a user