#pragma once #include #include #include #include namespace blitz { namespace network { class EnetClient : private NonCopyable { public: EnetClient(const Nz::IpAddress& address); ~EnetClient(); void Disconnect(); NazaraSignal(OnConnect); NazaraSignal(OnDisconnect); NazaraSignal(OnDisconnectTimeout); const EnetConnexion& GetConnexion() const { return m_Connexion; } private: EnetConnexion m_Connexion; Nz::ENetHost m_Host; Nz::ENetPeer* m_Peer; std::thread m_Thread; bool m_Running; void Update(); void WorkerThread(); }; } // namespace network } // namespace blitz