IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Example 3: Connections to Remote Nodes using a Registry

Describes how the Qt Remote Objects registry establishes connections between nodes.   This example illustrates the use of a Registry to build the node topology. For simple networks, we use a QUrl to create a direct connection between two nodes. For complex networks, we use a registry, where you use a different QUrl to point both the host and replica nodes to the registry. For only two nodes, the benefits of using a registry are minimal. But, as the network grows, using a registry means that all nodes only need to connect to the registry via a single QUrl. In comparison, with direct connections, nodes would have to maintain a list of QUrls for every single node that they link to.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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

 
Sélectionnez
#include <QCoreApplication>
#include "simpleswitch.h"

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

    SimpleSwitch srcSwitch; // create SimpleSwitch

    QRemoteObjectRegistryHost regNode(QUrl(QStringLiteral("local:registry"))); // create node that hosts registry
    QRemoteObjectHost srcNode(QUrl(QStringLiteral("local:switch")), QUrl(QStringLiteral("local:registry"))); // create node that will host source and connect to 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:

 
Sélectionnez
    QRemoteObjectNode repNode(QUrl(QStringLiteral("local:registry")));

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

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+