Класс QRemoteObjectReplica
Класс, взаимодействующий с (но не реализующим) API Qt в сети удаленных объектов. Подробнее...
| Заголовок: | #include <QRemoteObjectReplica> |
| qmake: | QT += remoteobjects |
| Наследует: | QObject |
| Наследуется от: |
Типы публичного доступа
| Перечисление | State { Неинициализирован, По умолчанию, Действительный, Подозрительный, Несоответствие подписи } |
Свойства
Функции публичного доступа
| bool | isInitialized() const |
| bool | isReplicaValid() const |
| QRemoteObjectNode * | node() const |
| virtual void | setNode(QRemoteObjectNode *node) |
| QRemoteObjectReplica::State | state() const |
| bool | waitForSource(int timeout = 30000) |
Сигналы
| void | initialized() |
| void | notified() |
| void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) |
Подробное описание
Реплика удаленного объекта — это прокси QObject для другого QObject (называемый объектом-источником). После инициализации реплика может быть рассмотрена как «латентная копия» объекта-источника. То есть любое изменение свойства Q_PROPERTY объекта-источника или испускание сигнала объектом-источником будет обновлено/испущено всеми объектами-репликами. Задержка вносится планировщиком задач любой используемой ОС и задержкой сетевого соединения. Пока реплика инициализирована и коммуникация не прервана, порядок получения и обработки изменений гарантирован.
Свойства isInitialized и state (и соответствующие сигналы initialized()/stateChanged()), позволяют определить состояние реплики.
Хотя Qt Remote Objects (QtRO) обрабатывает инициализацию и синхронизацию объектов-реплик, существует множество скрытых этапов, которые могут завершиться ошибкой и которых нет в приложениях Qt в одном процессе. См. Устранение неполадок, для получения советов по обработке таких проблем при использовании сети удалённых объектов.
Документация по типам членов
Перечисление QRemoteObjectReplica::State
Это перечисление определяет различные кодовые состояния, связанные с состояниями QRemoteObjectReplica:
| Постоянная | Значение | Описание |
|---|---|---|
QRemoteObjectReplica::Uninitialized |
0 |
начальное значение DynamicReplica, где ничего не известно о реплике до подключения к источнику. |
QRemoteObjectReplica::Default |
1 |
начальное значение статической реплики, где доступны любые значения по умолчанию, заданные в файле .rep, так что их можно использовать при необходимости. |
QRemoteObjectReplica::Valid |
2 |
указывает, что реплика подключена, имеет хорошие значения свойств и с ней можно взаимодействовать. |
QRemoteObjectReplica::Suspect |
3 |
состояние ошибки, возникающее, если подключение к источнику теряется после его инициализации. |
QRemoteObjectReplica::SignatureMismatch |
4 |
состояние ошибки, возникающее, если подключение к источнику установлено, но источник и реплика не получены из одного .rep (возможно только для статических реплик). |
Документация по свойству
node : QRemoteObjectNode*
Это свойство содержит указатель на узел, из которого был получен этот объект.
Функции доступа:
| QRemoteObjectNode * | node() const |
| virtual void | setNode(QRemoteObjectNode *node) |
state : const State
Возвращает состояние реплики.
Это свойство содержит состояние реплики QRemoteObjectReplica::State.
Функции доступа:
| QRemoteObjectReplica::State | state() const |
Сигнал уведомления:
| void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) |
Документация по функциям-членам
[signal] void QRemoteObjectReplica::initialized()
Этот сигнал испускается после инициализации реплики. Инициализированная реплика имеет все значения свойств, но еще не испустила никаких уведомлений об изменениях свойств.
См. также isInitialized() и stateChanged().
[signal] void QRemoteObjectReplica::notified()
Этот сигнал испускается после инициализации реплики и испускания всех уведомлений об изменениях свойств.
Иногда полезно реагировать на изменения свойств как на события. Например, вы можете отобразить уведомление пользователю, когда происходит определённое изменение свойства. Однако это уведомление пользователя также будет сгенерировано, когда реплика впервые станет QRemoteObjectReplica::Valid, так как все сигналы изменений свойств будут испущены в этот момент. Это не всегда желательно, и notified позволяет разработчику различать эти два случая.
[signal] void QRemoteObjectReplica::stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)
Этот сигнал испускается всякий раз, когда состояние реплики изменяется между QRemoteObjectReplica::State.
Изменение состояния представлено значениями state и oldState.
Примечание: Сигнал уведомления для свойства state.
См. также state() и initialized().
bool QRemoteObjectReplica::isInitialized() const
Возвращает true если эта реплика была инициализирована данными из объекта-источника. Возвращает false в противном случае.
См. также state().
bool QRemoteObjectReplica::isReplicaValid() const
Возвращает true если эта реплика была инициализирована и имеет валидное соединение с узлом, на котором размещён объект-источник. Возвращает false в противном случае.
См. также isInitialized().
QRemoteObjectReplica::State QRemoteObjectReplica::state() const
Возвращает true если эта копия была инициализирована данными из объекта Источник. Возвращает false в противном случае.
Примечание: Функция-получатель для свойства состояния.
См. также isInitialized().
bool QRemoteObjectReplica::waitForSource(int timeout = 30000)
Блокирующий вызов, который ожидает, пока копия не будет инициализирована или пока не истечёт timeout (в мс). Возвращает true если копия инициализирована по завершении вызова, false в противном случае.
Если timeout равен -1, эта функция не будет ожидать окончания таймаута.
См. также isInitialized() и initialized().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qremoteobjectreplica.html