ADD: added usage of a async callback for testing

This commit is contained in:
Henry Winkel
2023-08-10 10:48:24 +02:00
parent 6d0f7edc67
commit c7fea6f5cc
2 changed files with 19 additions and 3 deletions

View File

@@ -27,6 +27,7 @@ namespace DirectCommunication
void sendMessage(std::string msg);
std::string getLatestMessage();
void disconnect();
void registerMessageCallback(std::function<void(std::string)> MessageHandle);

View File

@@ -2,11 +2,13 @@
#include "zmq.hpp"
#include <functional>
#include <memory>
#include <string>
#include <sys/types.h>
#include <thread>
#include <loguru.hpp>
#include <future>
namespace DirectCommunication
@@ -34,12 +36,24 @@ namespace DirectCommunication
DirectCommunicationClient::~DirectCommunicationClient()
{
sendMessage("CLOSE");
isConnected = false;
stopWorker_ = true;
Worker_.join();
socket_.close();
isConnected = false;
}
void DirectCommunicationClient::disconnect()
{
sendMessage("CLOSE");
stopWorker_ = true;
Worker_.join();
socket_.close();
isConnected = false;
}
void DirectCommunicationClient::registerMessageCallback(std::function<void(std::string)> MessageHandle)
@@ -89,8 +103,9 @@ namespace DirectCommunication
}else
{
if (MessageHandle_ != nullptr)
{
MessageHandle_(msg.to_string());
{
auto i = std::async(std::launch::async, MessageHandle_, msg.to_string());
// MessageHandle_(msg.to_string());
}
else
{