Revision control
Copy as Markdown
// Copyright (C) 2018 Ford Motor Company
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page qtremoteobjects-registry.html
\title Qt Remote Objects Registry
\brief Describes how the Qt Remote Objects registry establishes connections
between nodes.
\target Registry
When you \l {QRemoteObjectNode::acquire()} a replica, the node URL is not passed
as an argument. This means you do not need to specify the host node, but it does
require you to have some other means of connecting to that host. Without the
registry, it is necessary to manually call \l {QRemoteObjectNode::connectToNode()},
from each node, to every host node that has \l {Source} objects it should
replicate. This is fine for small or static networks, but does not scale.
The registry provides a simpler way to establish these connections. Every node
that wants to be part of the registry's network connects to the registry. The
registry is itself a specialized source object, and thus is hosted by a node.
Connecting to the registry is simply a matter of passing the registry's URL to
the QRemoteObjectNode or QRemoteObjectHost constructor, or passing the URL to
the setRegistryUrl method.
The registry is tightly integrated with QtRO. Whenever a \l {Source} is added
or removed, the name/URL is updated in the registry automatically. So once
your node is connected to the registry, it is not necessary to connect to any
other nodes manually. If you request an object on the network and you aren't
connected to the hosting node, the registry will know what URL to connect to
and will initiate the connection. Once connected (and the list of available
objects is passed along, including the desired \l {Source}), the initialization
process for the requested \l Replica will start automatically.
*/