From f5a127dd11589c8fc6db0a1bd4332d09ac080bb6 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Thu, 11 Jun 2026 15:44:37 -0400 Subject: [PATCH] use updated capability module (#85) * use refactored capability module use refactored capability module remove unneded comments * use cpp types --- cpp/logos_api_client.cpp | 10 +++++----- cpp/logos_api_consumer.cpp | 18 ++++++++++++++++++ cpp/logos_api_consumer.h | 2 ++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/cpp/logos_api_client.cpp b/cpp/logos_api_client.cpp index d3db4d7..bbfb309 100644 --- a/cpp/logos_api_client.cpp +++ b/cpp/logos_api_client.cpp @@ -95,11 +95,11 @@ QVariant LogosAPIClient::invokeRemoteMethod(const QString& objectName, const QSt if (token.isEmpty() && objectName != "capability_module" && m_capability_consumer) { qDebug() << "LogosAPIClient: calling requestModule for" << objectName; QString capabilityToken = getToken("capability_module"); - QVariant result = m_capability_consumer->invokeRemoteMethod( - capabilityToken, "capability_module", "requestModule", - QVariantList() << m_origin_module << objectName, timeout); - qDebug() << "LogosAPIClient: requestModule result for" << objectName << ":" << result.toString(); - token = result.toString(); + token = QString::fromStdString( + m_capability_consumer->requestModule(capabilityToken.toStdString(), + m_origin_module.toStdString(), + objectName.toStdString())); + qDebug() << "LogosAPIClient: requestModule result for" << objectName << ":" << token; } return m_consumer->invokeRemoteMethod(token, objectName, methodName, args, timeout); diff --git a/cpp/logos_api_consumer.cpp b/cpp/logos_api_consumer.cpp index f930aa0..8de88a5 100644 --- a/cpp/logos_api_consumer.cpp +++ b/cpp/logos_api_consumer.cpp @@ -204,3 +204,21 @@ bool LogosAPIConsumer::informModuleToken_module(const QString& authToken, const plugin->release(); return result; } + +std::string LogosAPIConsumer::requestModule(const std::string& authToken, const std::string& originModule, const std::string& targetModule) +{ + const QString qOrigin = QString::fromStdString(originModule); + const QString qTarget = QString::fromStdString(targetModule); + qDebug() << "LogosAPIConsumer: requestModule for origin:" << qOrigin << "target:" << qTarget; + + LogosObject* plugin = m_transport->requestObject("capability_module", 20000); + if (!plugin) { + qWarning() << "LogosAPIConsumer: Failed to acquire plugin/replica for object: capability_module"; + return {}; + } + + QVariant result = plugin->callMethod(QString::fromStdString(authToken), QStringLiteral("requestModule"), + QVariantList() << qOrigin << qTarget, 20000); + plugin->release(); + return result.toString().toStdString(); +} diff --git a/cpp/logos_api_consumer.h b/cpp/logos_api_consumer.h index 0409313..267b207 100644 --- a/cpp/logos_api_consumer.h +++ b/cpp/logos_api_consumer.h @@ -9,6 +9,7 @@ #include #include #include +#include #include "logos_mode.h" #include "logos_transport_config.h" @@ -106,6 +107,7 @@ public: public slots: bool informModuleToken(const QString& authToken, const QString& moduleName, const QString& token); bool informModuleToken_module(const QString& authToken, const QString& originModule, const QString& moduleName, const QString& token); + std::string requestModule(const std::string& authToken, const std::string& originModule, const std::string& targetModule); private: std::unique_ptr m_transport;