From c7fea6f5cc8b6eeea68e40466ea68a919803691c Mon Sep 17 00:00:00 2001 From: Henry Winkel Date: Thu, 10 Aug 2023 10:48:24 +0200 Subject: [PATCH] ADD: added usage of a async callback for testing --- include/DirectCommunicationClient.hpp | 1 + src/DirectCommunicationClient.cpp | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/include/DirectCommunicationClient.hpp b/include/DirectCommunicationClient.hpp index 5931eb8..de9ddce 100644 --- a/include/DirectCommunicationClient.hpp +++ b/include/DirectCommunicationClient.hpp @@ -27,6 +27,7 @@ namespace DirectCommunication void sendMessage(std::string msg); std::string getLatestMessage(); + void disconnect(); void registerMessageCallback(std::function MessageHandle); diff --git a/src/DirectCommunicationClient.cpp b/src/DirectCommunicationClient.cpp index fd72725..25896b6 100644 --- a/src/DirectCommunicationClient.cpp +++ b/src/DirectCommunicationClient.cpp @@ -2,11 +2,13 @@ #include "zmq.hpp" +#include #include #include #include #include #include +#include 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 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 {