例3:レジストリを使ったリモートノードへの接続

ソースの設定

例の simpleswitch.h およびsimpleswitch.cpp のソースはそのまま使用できます。違いは、ホスト・ノードの作成方法とレジストリへの接続方法です:

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

レプリカのセットアップ

この例で使用するリクエスタオブジェクトは、2で説明した動的レプリカクライアントです。

唯一の変更は、main.cppReplicaを取得するためにレジストリノードが作成されることです:

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

ソース側の例と一緒に実行すると、出力は1と同じになります。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。