#pragma once #include namespace td { namespace server { class FakeSocket; } // namespace server namespace client { class FakeSocket : public IClientSocket { private: std::shared_ptr m_Server; PeerID m_PeerId; struct Private{ explicit Private() = default; }; public: FakeSocket(Private) {} ~FakeSocket() {} static std::shared_ptr Connect(const std::shared_ptr& a_Server); void ReceiveFromFakePeer(PeerID a_Peer, const protocol::PacketBase& a_Packet); virtual void Send(const protocol::PacketBase& a_Packet) override; }; } // namespace client } // namespace td