From 4dec2ec44ccd9d57c58719a8241d7b3b76a81569 Mon Sep 17 00:00:00 2001 From: erhant Date: Tue, 16 Jun 2026 15:52:56 +0300 Subject: [PATCH] fix: input type for Qt Remote Objects --- src/i_lez_indexer_module.h | 6 +++++- src/lez_indexer_module.cpp | 11 +++++++++-- src/lez_indexer_module.h | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/i_lez_indexer_module.h b/src/i_lez_indexer_module.h index da8a1b7..eb716fc 100644 --- a/src/i_lez_indexer_module.h +++ b/src/i_lez_indexer_module.h @@ -13,9 +13,13 @@ public: // === Logos Execution Zone Indexer === // Indexer Lifecycle + // `port` is taken as a QString (not uint16_t) because the Qt Remote Objects + // ModuleProxy invokes by exact meta-type match and delivers caller arguments + // as QString (the module-viewer reads every parameter as text); a uint16_t + // parameter would never match. It is parsed to a port number internally. virtual int start_indexer( const QString& config_path, - uint16_t port + const QString& port ) = 0; }; diff --git a/src/lez_indexer_module.cpp b/src/lez_indexer_module.cpp index 6dce226..1a5a33c 100644 --- a/src/lez_indexer_module.cpp +++ b/src/lez_indexer_module.cpp @@ -40,12 +40,19 @@ void LezIndexerModule::initLogos(LogosAPI* logosApiInstance) { // === Indexer Lifecycle === -int LezIndexerModule::start_indexer(const QString& config_path, uint16_t port) { +int LezIndexerModule::start_indexer(const QString& config_path, const QString& port) { if (!indexer_service_ffi) { + bool ok = false; + const uint16_t port_num = port.toUShort(&ok); + if (!ok) { + qWarning() << "start_indexer: invalid port:" << port; + return -1; + } + QByteArray utf8 = config_path.toUtf8(); const char* c_path = utf8.constData(); - InitializedIndexerServiceFFIResult indexer_service_ffi_res = ::start_indexer(c_path, port); + InitializedIndexerServiceFFIResult indexer_service_ffi_res = ::start_indexer(c_path, port_num); if (is_error(&indexer_service_ffi_res.error)) { int signal = indexer_service_ffi_res.error; diff --git a/src/lez_indexer_module.h b/src/lez_indexer_module.h index f34ec88..23dde79 100644 --- a/src/lez_indexer_module.h +++ b/src/lez_indexer_module.h @@ -39,7 +39,7 @@ public: // === Logos Execution Zone Indexer === // Indexer Lifecycle - Q_INVOKABLE int start_indexer(const QString& config_path, uint16_t port) override; + Q_INVOKABLE int start_indexer(const QString& config_path, const QString& port) override; signals: void eventResponse(const QString& eventName, const QVariantList& data);