例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と同じになります。

© 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.