QtRemoteObject получает сигнал в хосте, когда реплики подключены / отключены

Я использую Qt’s QtRemoteObject модуль для запуска процессов на многих устройствах. Текущая архитектура состоит в том, что есть хост-компьютер (назовите его ManagerNode), который создает объект-источник, затем есть много других удаленных компьютеров, которые работают в локальной сети (назовите их узлами процессора). При запуске многих процессорных узлов мне удалось подключить их к узлу ManagerNode. После подключения связь через сигналы / слоты была довольно тривиальной.

Мой вопрос: на ManagerNode я хотел бы зафиксировать какой-то сигнал, когда каждый из процессорных узлов подключен так же как когда процессорные узлы отключены (то есть из-за перебоев в Интернете / компьютерных сбоев).

Вот некоторые фрагменты моего кода:

Host / main.cpp

#include <QCoreApplication>
#include "simpleswitch.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QRemoteObjectRegistryHost regHost(QUrl("tcp://10.81.2.42"));

QRemoteObjectHost host;
host.setHostUrl(QUrl("tcp://10.81.2.42:1"));
host.setRegistryUrl(QUrl("tcp://10.81.2.42"));

SimpleSwitch simpleSwitch;
host.enableRemoting(&simpleSwitch);

return a.exec();
}

Реплика / main.cpp

#include <QCoreApplication>
#include "client.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QRemoteObjectNode node(QUrl("tcp://10.81.2.42"));

while (!node.waitForRegistry(1000));
qDebug() << "Registry is Setup";

QSharedPointer<SimpleSwitchReplica> ptr;
ptr.reset(node.acquire<SimpleSwitchReplica>());
Client rswitch(ptr);

return a.exec();
}

Я обнаружил, что в классе SimpleSwitchReplica есть сигнал для StateChanged и это работает всякий раз, когда есть соединение / отключение от ManagerNode. Но этот сигнал испускается на ProcessorNode, тогда как я хочу сигнал на ManagerNode …

Любая помощь по этому вопросу будет принята с благодарностью.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]