Spec-Zone.ru › Qt 5.9

Класс QRemoteObjectHostBase

Класс QRemoteObjectHostBase предоставляет базовые функции, общие для классов Host и RegistryHost. Подробнее...

Заголовок: #include <QRemoteObjectHostBase>
qmake: QT += remoteobjects
Наследует: QRemoteObjectNode
Наследуется от:

QRemoteObjectHost и QRemoteObjectRegistryHost

  • Список всех членов, включая унаследованные

Открытые функции

bool disableRemoting(QObject *remoteObject)
bool enableRemoting(ObjectType *object)
bool enableRemoting(QObject *object, const QString &name = QString())
bool enableRemoting(QAbstractItemModel *model, const QString &name, const QVector<int> roles, QItemSelectionModel *selectionModel = nullptr)

Переопределённые открытые функции

virtual void setName(const QString &name) override
  • 14 открытых функций унаследовано от QRemoteObjectNode
  • 32 открытых функций унаследовано от QObject

Дополнительные унаследованные члены

  • 1 свойство унаследовано от QRemoteObjectNode
  • 1 свойство унаследовано от QObject
  • 1 открытый слот унаследован от QObject
  • 3 сигнала унаследованы от QRemoteObjectNode
  • 2 сигнала унаследованы от QObject
  • 11 статических открытых членов унаследованы от QObject
  • 9 защищённых функций унаследованы от QObject

Подробное описание

Класс QRemoteObjectHostBase предоставляет базовые функции, общие для классов Host и RegistryHost.

QRemoteObjectHostBase — базовый класс, который нельзя создать напрямую. Он предоставляет функции enableRemoting и disableRemoting, общие для всех узлов хоста (Host и RegistryHost), а также логику, необходимую для экспонирования объектов Source в сети удалённых объектов.

Документация по функциям-членам

bool QRemoteObjectHostBase::disableRemoting(QObject *remoteObject)

Отключает удалённый доступ для объекта QObject remoteObject. Возвращает false если текущий узел является клиентом или если remoteObject не зарегистрирован, и возвращает true если удалённый доступ для объекта Source успешно отключён.

Предупреждение: Копии этого объекта больше не будут действительны после вызова этого метода.

См. также enableRemoting().

bool QRemoteObjectHostBase::enableRemoting(ObjectType *object)

Этот шаблонный перегруз функции позволяет узлу хоста предоставлять удалённый доступ к объекту QObject object со специфицированным (и проверенным на этапе компиляции) интерфейсом. Клиентские узлы, подключённые к узлу, на котором размещён этот объект, могут получить копии этого источника.

Лучше всего это проиллюстрировать примером:

#include "rep_TimeModel_source.h"
MinuteTimer timer;
hostNode.enableRemoting<MinuteTimerSourceAPI>(&timer);

Здесь MinuteTimerSourceAPI — это набор сигналов/слотов/свойств, определённых в файле TimeModel.rep. Проверяется на этапе компиляции, может ли входной объект QObject предоставить запрошенный API; в противном случае компиляция завершится ошибкой. Это позволяет экспонировать подмножество интерфейса object и определяет типы преобразований, поддерживаемые подключениями сигналов/слотов.

Возвращает false если текущий узел является клиентским узлом или если объект QObject уже зарегистрирован для удалённого доступа, и true если удалённый доступ для объекта QObject успешно включён.

См. также disableRemoting().

bool QRemoteObjectHostBase::enableRemoting(QObject *object, const QString &name = QString())

Включает предоставление узлом хоста динамического удалённого доступа к объекту QObject object. Клиентские узлы, подключённые к узлу, на котором размещён этот объект, могут получить копии этого источника.

name определяет имя для поиска объекта QObject с помощью QRemoteObjectNode::acquire(). Если не задано явно, используется имя, заданное в QCLASSINFO_REMOTEOBJECT_TYPE. Если для объекта QObject не определена эта макрокоманда, используется QObject::objectName().

Возвращает false если текущий узел является клиентом, или если объект QObject уже зарегистрирован для удалённого доступа, и true если удалённый доступ к динамическому объекту QObject успешно включён.

См. также disableRemoting().

bool QRemoteObjectHostBase::enableRemoting(QAbstractItemModel *model, const QString &name, const QVector<int> roles, QItemSelectionModel *selectionModel = nullptr)

Этот перегруз enableRemoting() специфичен для типов QAbstractItemModel (или любых типов, производных от QAbstractItemModel). Это полезно, если вы хотите, чтобы модель и HMI модели находились в разных процессах.

Три обязательных параметра — это сама model, имя name для поиска модели и roles, которые должны быть экспонированы на стороне копии. Если вы хотите синхронизировать выбор между Source и Replica, можно использовать необязательный параметр selectionModel. Это рекомендуется только при использовании одной копии.

Под капотом Qt Remote Objects группирует запросы к данным() и предварительно загружает данные, когда это возможно, чтобы сделать взаимодействие с моделью максимально отзывчивым.

Возвращает false если текущий узел является клиентом, или если объект QObject уже зарегистрирован для удалённого доступа, и true если удалённый доступ к QAbstractItemModel успешно включён.

См. также disableRemoting().

[override virtual] void QRemoteObjectHostBase::setName(const QString &name)

Переопределено из QRemoteObjectNode::setName().

Аналогично QObject::setObjectName() (которое вызывает этот метод), но эта версия также применяет name и к внутренним классам, которые используются в некоторых отчётах об отладке.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qremoteobjecthostbase.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API