Example 3: Connections to Remote Nodes using a Registry

Set up the Source

The simpleswitch.h and simpleswitch.cpp sources from Example can be used without modification. The difference is in the way a host node is created and connected to the registry:

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();
 }

Set up the Replica

The requestor object used for this example is the dynamic replica client discussed in Example 2.

The only modification is in main.cpp: a Registry node is created to acquire a Replica:

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

When run together with the source-side example, the output is identical to Example 1.