Класс QRemoteObjectHostBase
Класс QRemoteObjectHostBase предоставляет базовые функции, общие для классов Host и RegistryHost. Подробнее...
| Заголовок: | #include <QRemoteObjectHostBase> |
| qmake: | QT += remoteobjects |
| Наследует: | QRemoteObjectNode |
| Наследуется от: |
Открытые функции
| 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