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::atomic_bool isConnected = false;
|
||||||
|
|
||||||
std::function<void(std::string)> MessageHandle_ = nullptr;
|
std::function<void(std::string)> MessageHandle_ = nullptr;
|
||||||
|
std::atomic_bool useHandl_ = false;;
|
||||||
|
|
||||||
WHISPER::threadSafeQueue<std::string> receivedMessages_;
|
WHISPER::threadSafeQueue<std::string> receivedMessages_;
|
||||||
|
|
||||||
|
|||||||
@@ -35,19 +35,15 @@ namespace DirectCommunication
|
|||||||
|
|
||||||
DirectCommunicationClient::~DirectCommunicationClient()
|
DirectCommunicationClient::~DirectCommunicationClient()
|
||||||
{
|
{
|
||||||
sendMessage("CLOSE");
|
this->disconnect();
|
||||||
|
|
||||||
stopWorker_ = true;
|
|
||||||
Worker_.join();
|
|
||||||
|
|
||||||
socket_.close();
|
|
||||||
isConnected = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DirectCommunicationClient::disconnect()
|
void DirectCommunicationClient::disconnect()
|
||||||
{
|
{
|
||||||
sendMessage("CLOSE");
|
sendMessage("CLOSE");
|
||||||
|
|
||||||
|
useHandl_ = false;
|
||||||
|
MessageHandle_ = nullptr;
|
||||||
stopWorker_ = true;
|
stopWorker_ = true;
|
||||||
Worker_.join();
|
Worker_.join();
|
||||||
|
|
||||||
@@ -59,6 +55,7 @@ namespace DirectCommunication
|
|||||||
void DirectCommunicationClient::registerMessageCallback(std::function<void(std::string)> MessageHandle)
|
void DirectCommunicationClient::registerMessageCallback(std::function<void(std::string)> MessageHandle)
|
||||||
{
|
{
|
||||||
MessageHandle_ = MessageHandle;
|
MessageHandle_ = MessageHandle;
|
||||||
|
useHandl_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DirectCommunicationClient::sendMessage(std::string msg)
|
void DirectCommunicationClient::sendMessage(std::string msg)
|
||||||
@@ -102,14 +99,19 @@ namespace DirectCommunication
|
|||||||
|
|
||||||
}else
|
}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());
|
// MessageHandle_(msg.to_string());
|
||||||
}
|
}
|
||||||
else
|
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