#pragma once #include "network/TCPSocket.h" #include "protocol/PacketHandler.h" #include "protocol/PacketDispatcher.h" #include "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(protocol::Packet* packet); REMOVE_COPY(Connexion); }; } // namespace server } // namespace td