diff options
Diffstat (limited to 'src/network/NetworkClient.hpp')
-rw-r--r-- | src/network/NetworkClient.hpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/network/NetworkClient.hpp b/src/network/NetworkClient.hpp new file mode 100644 index 0000000..a41b5f4 --- /dev/null +++ b/src/network/NetworkClient.hpp @@ -0,0 +1,42 @@ +#pragma once + +#include <queue> +#include <thread> +#include <mutex> +#include "Network.hpp" + +struct ServerInfo{ + std::string version; + int protocol = 0; + int players_max = 0; + int players_online = 0; + std::vector<std::pair<std::string, std::string>> players; + std::string description; + double ping = 0; + std::string favicon; + std::string json; +}; +class NetworkClient { +public: + NetworkClient(std::string address, unsigned short port, std::string username); + ~NetworkClient(); + + void Update(); + + void MainLoop(); + + Packet * GetPacket(); + void AddPacketToQueue(Packet packet); + + static ServerInfo ServerPing(std::string address,unsigned short port); +private: + std::mutex m_updateMutex; + std::thread m_networkThread; + bool isContinue=true; + NetworkClient (const NetworkClient&); + NetworkClient&operator=(const NetworkClient&); + Network m_network; + std::queue <Packet> m_received; + std::queue <Packet> m_toSend; +}; + |