#pragma once #include #include #include #pragma warning(push, 0) #include "..\Messages\generated\message.pb.h" #pragma warning(pop) namespace DAPI { struct DAPIProtoClient { DAPIProtoClient(); void checkForConnection(); void lookForServer(); void transmitMessages(); void receiveMessages(); void disconnect(); void initListen(); void stopListen(); void queueMessage(std::unique_ptr newMessage); std::unique_ptr getNextMessage(); bool isConnected() const; int messageQueueSize() const; private: sf::UdpSocket udpSocket; sf::TcpSocket tcpSocket; sf::TcpListener tcpListener; sf::SocketSelector socketSelector; std::deque> messageQueue; std::mt19937 mt; int getRandomInteger(int min, int max) { std::uniform_int_distribution randomNumber(min, max); return randomNumber(mt); } unsigned short connectionPort; bool udpbound; }; } // namespace DAPI