FIX: Updated the use of a function handle
This commit is contained in:
@@ -46,7 +46,7 @@ namespace DirectCommunication
|
||||
std::atomic_bool isConnected = false;
|
||||
|
||||
std::function<void(std::string)> MessageHandle_ = nullptr;
|
||||
|
||||
std::atomic_bool useHandl_ = false;;
|
||||
|
||||
WHISPER::threadSafeQueue<std::string> receivedMessages_;
|
||||
|
||||
|
||||
@@ -35,19 +35,15 @@ namespace DirectCommunication
|
||||
|
||||
DirectCommunicationClient::~DirectCommunicationClient()
|
||||
{
|
||||
sendMessage("CLOSE");
|
||||
|
||||
stopWorker_ = true;
|
||||
Worker_.join();
|
||||
|
||||
socket_.close();
|
||||
isConnected = false;
|
||||
this->disconnect();
|
||||
}
|
||||
|
||||
void DirectCommunicationClient::disconnect()
|
||||
{
|
||||
sendMessage("CLOSE");
|
||||
|
||||
useHandl_ = false;
|
||||
MessageHandle_ = nullptr;
|
||||
stopWorker_ = true;
|
||||
Worker_.join();
|
||||
|
||||
@@ -59,6 +55,7 @@ namespace DirectCommunication
|
||||
void DirectCommunicationClient::registerMessageCallback(std::function<void(std::string)> MessageHandle)
|
||||
{
|
||||
MessageHandle_ = MessageHandle;
|
||||
useHandl_ = true;
|
||||
}
|
||||
|
||||
void DirectCommunicationClient::sendMessage(std::string msg)
|
||||
@@ -102,14 +99,19 @@ namespace DirectCommunication
|
||||
|
||||
}else
|
||||
{
|
||||
if (MessageHandle_ != nullptr)
|
||||
if (MessageHandle_ == nullptr)
|
||||
{
|
||||
auto i = std::async(std::launch::async, MessageHandle_, msg.to_string());
|
||||
receivedMessages_.addElement(msg.to_string());
|
||||
// MessageHandle_(msg.to_string());
|
||||
}
|
||||
else
|
||||
{
|
||||
receivedMessages_.addElement(msg.to_string());
|
||||
if (useHandl_ == true)
|
||||
{
|
||||
auto i = std::async(std::launch::async, MessageHandle_, msg.to_string());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user