QRemoteObjectHostBase — PyQt Documentation v6.9.0 (original) (raw)

PyQt6.QtRemoteObjects.QRemoteObjectHostBase

Inherits from QRemoteObjectNode.

Inherited by QRemoteObjectHost, QRemoteObjectRegistryHost.

Description

The QRemoteObjectHostBase class provides base functionality common to QRemoteObjectHost and QRemoteObjectRegistryHost classes.

QRemoteObjectHostBase is a base class that cannot be instantiated directly. It provides the enableRemoting() and disableRemoting() functionality shared by all host nodes (QRemoteObjectHost and QRemoteObjectRegistryHost) as well as the logic required to expose Source objects on the Remote Objects network.

Enums

AllowedSchemas

This enum is used to specify whether a Node will accept a url with an unrecognized schema for the hostUrl. By default only urls with known schemas are accepted, but using AllowExternalRegistration will enable the Registry to pass your external (to QtRO) url to client Nodes.

Member Value Description
AllowExternalRegistration 1 The provided schema is registered as an External Schema
BuiltInSchemasOnly 0 Only allow the hostUrl to be set to a QtRO supported schema. This is the default value, and causes a Node error to be set if an unrecognized schema is provided.

Methods

addHostSideConnection(QIODevice)

In order to QRemoteObjectHost::enableRemoting() Source objects over External QIODevices, Qt Remote Objects needs access to the communications channel (a QIODevice) between the respective nodes. It is the call that enables this on the Source side, taking the ioDevice as input. Any enableRemoting() call will still work without calling , but the Node will not be able to share the Source objects without being provided the connection to the Replica node. Before calling this function you must call setHostUrl()() with a unique URL and AllowExternalRegistration.

See also

addClientSideConnection.


disableRemoting(QObject) → bool

Disables remote access for the QObject remoteObject. Returns false if the current node is a client node or if the remoteObject is not registered, and returns true if remoting is successfully disabled for the Source object.

Warning: Replicas of this object will no longer be valid after calling this method.

See also

enableRemoting().


enableRemoting(QObject, name: Optional[str] = '') → bool

Enables a host node to dynamically provide remote access to the QObject object. Client nodes connected to the node hosting this object may obtain Replicas of this Source.

The optional name defines the lookup-name under which the QObject can be acquired using QRemoteObjectNode::acquire() . If not explicitly set then the name given in the QCLASSINFO_REMOTEOBJECT_TYPE will be used. If no such macro was defined for the QObject then the objectName() is used.

Returns false if the current node is a client node, or if the QObject is already registered to be remoted, and true if remoting is successfully enabled for the dynamic QObject.

See also

disableRemoting().


enableRemoting(QAbstractItemModel, Optional[str], Iterable[int], selectionModel: QItemSelectionModel = None) → bool

This overload of enableRemoting() is specific to QAbstractItemModel types (or any type derived from QAbstractItemModel). This is useful if you want to have a model and the HMI for the model in different processes.

The three required parameters are the model itself, the name by which to lookup the model, and the roles that should be exposed on the Replica side. If you want to synchronize selection between Source and Replica, the optional selectionModel parameter can be used. This is only recommended when using a single Replica.

Behind the scenes, Qt Remote Objects batches data() lookups and prefetches data when possible to make the model interaction as responsive as possible.

Returns false if the current node is a client node, or if the QObject is already registered to be remoted, and true if remoting is successfully enabled for the QAbstractItemModel.

See also

disableRemoting().


proxy(QUrl, hostUrl: QUrl = QUrl()) → bool

TODO


reverseProxy() → bool

TODO


setName(Optional[str])

TODO