Beispiel 3: Verbindungen zu entfernten Knoten mit Hilfe einer Registry

Einrichten der Quelle

Die Quellen simpleswitch.h und simpleswitch.cpp aus dem Beispiel können ohne Änderung verwendet werden. Der Unterschied liegt in der Art und Weise, wie ein Host-Knoten erstellt und mit der Registrierung verbunden wird:

main.cpp

#include <QCoreApplication>
#include "simpleswitch.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    SimpleSwitch srcSwitch; // create SimpleSwitch

    // Create node that hosts registry:
    QRemoteObjectRegistryHost regNode(QUrl(QStringLiteral("local:registry")));

    // Create node that will host source and connect to registry:
    QRemoteObjectHost srcNode(QUrl(QStringLiteral("local:replica")),
                              QUrl(QStringLiteral("local:registry")));
    // Note, you can add srcSwitch directly to regNode if desired.
    // We use two Nodes here, as the regNode could easily be in a third process.

    srcNode.enableRemoting(&srcSwitch); // enable remoting of source object

    return a.exec();
}

Einrichten des Replikats

Das für dieses Beispiel verwendete Requestor-Objekt ist der in Beispiel 2 besprochene dynamische Replik-Client.

Die einzige Änderung besteht in main.cpp: ein Registry-Knoten wird erstellt, um ein Replikat zu erwerben:

    QRemoteObjectNode repNode(QUrl(QStringLiteral("local:registry")));

Wenn es zusammen mit dem quellseitigen Beispiel ausgeführt wird, ist die Ausgabe identisch mit Beispiel 1.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.