Класс QRemoteObjectReplica
Класс, взаимодействующий с (но не реализующим) API Qt в сети удалённых объектов. Подробнее...
| Заголовок: | #include <QRemoteObjectReplica> |
| CMake: | find_package(Qt6 COMPONENTS RemoteObjects REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::RemoteObjects) |
| qmake: | QT += remoteobjects |
| Наследуется от: | QObject |
| Наследует: |
Типы публичного доступа
| Перечисление | Состояние { Неинициализирован, По умолчанию, Действителен, Подозрительный, Несовпадение подписи } |
Свойства
Функции публичного доступа
| bool | инициализирован() const |
| bool | действителен() const |
| QRemoteObjectNode * | node() const |
| виртуальный void | установитьУзел(QRemoteObjectNode *node) |
| QRemoteObjectReplica::Состояние | состояние() const |
| bool | подождатьИсточник(int timeout = 30000) |
Сигналы
| void | инициализирован() |
| void | уведомлен() |
| void | изменСостояния(QRemoteObjectReplica::Состояние state, QRemoteObjectReplica::Состояние oldState) |
Подробное описание
Реплика удалённого объекта — это прокси QObject для другого QObject (называемого объектом источника). После инициализации реплика может считаться «латентной копией» объекта источника. То есть, любое изменение свойства Q_PROPERTY в объекте источника или выпущенный им сигнал будут обновляться/выпускаться всеми объектами реплики. Задержка вводится планировщиком задач ОС и задержкой сетевой коммуникации. До тех пор, пока реплика была инициализирована и коммуникация не прервана, получение и порядок изменений гарантированы.
Свойства инициализирован и состояние (и соответствующие сигналы инициализирован()/изменСостояния()) позволяют определить состояние реплики.
Хотя Qt Remote Objects (QtRO) обрабатывает инициализацию и синхронизацию объектов реплики, существует множество шагов, происходящих за кулисами, которые могут завершиться неудачей и не встречаются в приложениях Qt в одном процессе. Обратитесь к Устранение неполадок за советом о том, как обрабатывать такие проблемы при использовании сети удаленных объектов.
Документация по типам членов
перечисление QRemoteObjectReplica::Состояние
Это перечисление определяет различные коды состояний, связанные с состояниями QRemoteObjectReplica:
| Константа | Значение | Описание |
|---|---|---|
QRemoteObjectReplica::Uninitialized |
0 |
Начальное значение DynamicReplica, где ничего не известно о реплике до подключения к источнику. |
QRemoteObjectReplica::Default |
1 |
Начальное значение статической реплики, где доступны любые значения по умолчанию, установленные в файле .rep, так что они могут быть использованы при необходимости. |
QRemoteObjectReplica::Valid |
2 |
Указывает, что реплика подключена, имеет корректные значения свойств и может использоваться. |
QRemoteObjectReplica::Suspect |
3 |
Состояние ошибки, которое возникает, если подключение к источнику теряется после его инициализации. |
QRemoteObjectReplica::SignatureMismatch |
4 |
Состояние ошибки, которое возникает, если подключение к источнику установлено, но источник и реплика не получены из одного .rep (возможно только для статических реплик). |
Документация по свойствам
узел : QRemoteObjectNode*
Это свойство содержит указатель на узел, из которого был получен этот объект.
Функции доступа:
| QRemoteObjectNode * | узел() const |
| виртуальный void | установитьУзел(QRemoteObjectNode *node) |
[read-only] состояние : const Состояние
Возвращает состояние реплики.
Это свойство содержит состояние реплики QRemoteObjectReplica::Состояние.
Функции доступа:
| QRemoteObjectReplica::Состояние | состояние() const |
Сигнал уведомления:
| void | изменСостояния(QRemoteObjectReplica::Состояние state, QRemoteObjectReplica::Состояние oldState) |
Документация по функциям-членам
[signal] void QRemoteObjectReplica::инициализирован()
Этот сигнал излучается после инициализации реплики. Инициализированная реплика имеет все значения свойств, но ещё не выпустила какие-либо уведомления об изменении свойств.
См. также инициализирован() и изменСостояния().
[signal] void QRemoteObjectReplica::уведомлен()
Этот сигнал излучается после инициализации реплики и выпуска всех уведомлений об изменениях свойств.
Иногда полезно реагировать на изменения свойств как на события. Например, вы можете отобразить пользовательское уведомление при возникновении определённого изменения свойства. Однако это пользовательское уведомление также будет сгенерировано, когда реплика впервые станет QRemoteObjectReplica::Valid, так как все сигналы изменений свойств излучаются в этот момент. Это не всегда желательно, и notified позволяет разработчику различать эти два случая.
[signal] void QRemoteObjectReplica::изменСостояния(QRemoteObjectReplica::Состояние state, QRemoteObjectReplica::Состояние oldState)
Этот сигнал излучается всякий раз, когда состояние реплики изменяется между QRemoteObjectReplica::Состояние.
Изменение состояния представлено state и oldState.
Примечание: Сигнал уведомления для свойства состояние.
См. также состояние() и инициализирован().
bool QRemoteObjectReplica::инициализирован() const
Возвращает true, если эта реплика была инициализирована данными из объекта источника. В противном случае возвращает false.
См. также состояние().
bool QRemoteObjectReplica::действителен() const
Возвращает true, если эта реплика была инициализирована и имеет действительное подключение с узлом, размещающим источник. В противном случае возвращает false.
См. также инициализирован().
QRemoteObjectReplica::State QRemoteObjectReplica::state() const
Возвращает true , если эта реплика была инициализирована данными из объекта Source. В противном случае возвращает false.
Примечание: Функция-геттер для свойства state.
См. также 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-6.2/qremoteobjectreplica.html