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.