#pragma once #include "td/network/TCPSocket.h" #include "td/protocol/PacketHandler.h" #include "td/protocol/PacketDispatcher.h" #include "td/game/Player.h" namespace td { namespace protocol { class Connexion : public protocol::PacketHandler { protected: protocol::PacketDispatcher m_Dispatcher; private: network::TCPSocket m_Socket; public: Connexion(); Connexion(Connexion&& move); Connexion(protocol::PacketDispatcher* dispatcher); Connexion(protocol::PacketDispatcher* dispatcher, network::TCPSocket& socket); virtual ~Connexion(); virtual bool UpdateSocket(); void CloseConnection(); bool Connect(const std::string& address, std::uint16_t port); network::Socket::Status GetSocketStatus() const { return m_Socket.GetStatus(); } void SendPacket(const protocol::Packet* packet); REMOVE_COPY(Connexion); }; } // namespace server } // namespace td