38 lines
655 B
C++
38 lines
655 B
C++
#pragma once
|
|
|
|
#include <Nazara/Network/ENetHost.hpp>
|
|
#include <blitz/network/EnetConnection.h>
|
|
#include <thread>
|
|
|
|
namespace blitz {
|
|
namespace network {
|
|
|
|
class EnetClient : private NonCopyable {
|
|
public:
|
|
EnetClient(const Nz::IpAddress& address);
|
|
~EnetClient();
|
|
|
|
void Disconnect();
|
|
|
|
NazaraSignal(OnConnect);
|
|
NazaraSignal(OnDisconnect);
|
|
NazaraSignal(OnDisconnectTimeout);
|
|
|
|
EnetConnection& GetConnection() {
|
|
return m_Connection;
|
|
}
|
|
|
|
private:
|
|
EnetConnection m_Connection;
|
|
Nz::ENetHost m_Host;
|
|
Nz::ENetPeer* m_Peer;
|
|
std::jthread m_Thread;
|
|
bool m_Running;
|
|
|
|
void Update();
|
|
void WorkerThread();
|
|
};
|
|
|
|
} // namespace network
|
|
} // namespace blitz
|