#include "ThreadClient.h" #include "ThreadServer.h" #include "ThreadSharedState.h" #include ThreadClient::ThreadClient(std::shared_ptr state, std::unique_ptr server) : sharedState(state), _server(std::move(server)) { assert(!sharedState->serverRunning); _server->start(); while (!sharedState->serverRunning) { } } ThreadClient::~ThreadClient() { sharedState->client_askServerToStop(); sharedState->serverStopRequested.store(true); // ask server to stop while (sharedState->serverRunning) { static bool did = false; if (!did) { did = true; } } } ThreadMessage * ThreadClient::getMessage() { return sharedState->client_pollMessage(); } bool ThreadClient::sendMessage(ThreadMessage * message) { return sharedState->client_trySendMessage(message); }