From 05de6f4995aed02ead7069864e3471484bff5db6 Mon Sep 17 00:00:00 2001 From: Viacheslav Demydiuk Date: Tue, 6 Aug 2024 17:51:49 +0300 Subject: [PATCH] MtService: using default expert if handle is zero --- MtService/MtServer.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/MtService/MtServer.cpp b/MtService/MtServer.cpp index d497d4a6..90813134 100755 --- a/MtService/MtServer.cpp +++ b/MtService/MtServer.cpp @@ -259,7 +259,22 @@ void MtServer::ProcessMessage(const std::string& msg, std::weak_ptrgetExpertHandle(); - if (experts_.count(expert_handle) > 0) + if (experts_.size() == 0) + { + log_.Error("%s: Expert list is empty. There is no any command executor.", __FUNCTION__); + } + else if (expert_handle == 0) + { + // use default expert + auto expert = experts_.begin(); + log_.Debug("%s: using default expert for executing command - %d" , __FUNCTION__, expert->first); + expert->second->expert->Process(std::move(command), [con = con, this](const MtResponse& response) { + auto connection = con.lock(); + if (connection) + connection->Send(response.Serialize()); + }); + } + else if (experts_.count(expert_handle) > 0) { experts_[expert_handle]->expert->Process(std::move(command), [con = con, this](const MtResponse& response) { auto connection = con.lock();