Spec-Zone.ru › Qt 5.9

Класс QRemoteObjectNode

Узел в сети Qt Remote Objects. Подробнее...

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

QRemoteObjectHostBase

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

Типы

Перечисление КодОшибки { БезОшибки, РеестрНеПолучен, РеестрУжеПривязан, УзелНеСервер, ..., НеверныйUrlХоста }
Перечисление ВладениеХранилищем { НеПередаватьВладение, ПередатьВладениеУзлу }

Свойства

  • registryUrl : QUrl
  • 1 свойство унаследовано от QObject

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

QRemoteObjectNode(QObject *parent = nullptr)
QRemoteObjectNode(const QUrl &registryAddress, QObject *parent = nullptr)
виртуальный ~QRemoteObjectNode()
ObjectType * acquire(const QString &name = QString())
QRemoteObjectDynamicReplica * acquireDynamic(const QString &name)
QAbstractItemModelReplica * acquireModel(const QString &name)
bool connectToNode(const QUrl &address)
QStringList instances() const
QStringList instances(const QString &typeName) const
КодОшибки lastError() const
const QRemoteObjectRegistry * registry() const
QUrl registryUrl() const
виртуальный void setName(const QString &name)
void setPersistedStore(QRemoteObjectPersistedStore *store, StorageOwnership ownership = DoNotPassOwnership)
виртуальный bool setRegistryUrl(const QUrl &registryAddress)
bool waitForRegistry(int timeout = 30000)

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

виртуальный void timerEvent(QTimerEvent *)
  • 32 открытые функции унаследованы от QObject

Сигналы

void error(QRemoteObjectNode::КодОшибки errorCode)
void remoteObjectAdded(const QRemoteObjectSourceLocation &loc)
void remoteObjectRemoved(const QRemoteObjectSourceLocation &loc)
  • 2 сигнала унаследованы от QObject

Защищенные функции

QRemoteObjectNode(QRemoteObjectNodePrivate &, QObject *parent)
  • 9 защищенных функций унаследованы от QObject

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

  • 1 открытый слот унаследован от QObject
  • 11 статических открытых членов унаследованы от QObject

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

Узел в сети Qt Remote Objects.

Класс QRemoteObjectNode предоставляет точку входа в сеть QtRemoteObjects. Сеть может быть такой простой, как два узла, или произвольно сложной системой процессов и устройств.

Узел QRemoteObjectNode не имеет URL, к которому другие узлы могут подключиться, поэтому он может получать только копии (replicas). Он не может обмениваться исходными объектами (только узлы QRemoteObjectHost и QRemoteObjectRegistryHost могут обмениваться).

Узлы могут напрямую подключаться друг к другу с помощью connectToNode или использовать QRemoteObjectRegistry для упрощения подключения.

У QRemoteObjectRegistry есть специальная копия, доступная каждому узлу, подключенному к URL реестра. Он знает, как подключаться к каждому объекту QRemoteObjectSource в сети.

См. также QRemoteObjectHost и QRemoteObjectRegistryHost.

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

перечисление QRemoteObjectNode::КодОшибки

Это перечисление определяет различные коды ошибок, связанные с ошибками QRemoteObjectNode:

Константа Значение Описание
QRemoteObjectNode::NoError 0 Нет ошибок.
QRemoteObjectNode::RegistryNotAcquired 1 Реестр не был получен.
QRemoteObjectNode::RegistryAlreadyHosted 2 Реестр уже определен и предоставляет доступ к источникам.
QRemoteObjectNode::NodeIsNoServer 3 Указанный QRemoteObjectNode не является узлом-хостом.
QRemoteObjectNode::ServerAlreadyCreated 4 Узел-хост уже был инициализирован.
QRemoteObjectNode::UnintendedRegistryHosting 5 Попытка создания узла-хоста QRemoteObjectNode и подключения к нему как к реестру.
QRemoteObjectNode::OperationNotValidOnClientNode 6 Попытка операции некорректна для клиентского узла QRemoteObjectNode.
QRemoteObjectNode::SourceNotRegistered 7 Указанный QRemoteObjectSource не зарегистрирован в этом узле.
QRemoteObjectNode::MissingObjectName 8 У указанного объекта QObject не задано имя objectName().
QRemoteObjectNode::HostUrlInvalid 9 Указанный URL имеет неверный или нераспознанный схему.

перечисление QRemoteObjectNode::ВладениеХранилищем

Используется для указания узлу, должен ли он принимать владение переданным указателем:

Константа Значение Описание
QRemoteObjectNode::DoNotPassOwnership 0 Владение объектом не передается.
QRemoteObjectNode::PassOwnershipToNode 1 Владение объектом передается, и деструктор узла вызовет delete.

Документация по свойствам

registryUrl : QUrl

Это свойство содержит адрес реестра, используемого этим узлом.

Будет пустой QUrl, если реестр не используется.

Функции доступа:

QUrl registryUrl() const
virtual bool setRegistryUrl(const QUrl &registryAddress)

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

QRemoteObjectNode::QRemoteObjectNode(QObject *parent = nullptr)

Конструктор по умолчанию для QRemoteObjectNode с заданным parent. Узел, созданный таким образом, не может быть подключён и, следовательно, не может экспонировать объекты-источники в сети. Он также не будет включать QRemoteObjectRegistry, если не задан вручную с помощью setRegistryUrl.

См. также connectToNode и setRegistryUrl.

QRemoteObjectNode::QRemoteObjectNode(const QUrl &registryAddress, QObject *parent = nullptr)

QRemoteObjectNode, подключённый к QRemoteObjectRegistry. Узел, созданный таким образом, не может быть подключён и, следовательно, не может экспонировать объекты-источники в сети. Поиск и подключение к другим узлам (хостам) осуществляется с помощью QRemoteObjectRegistry, заданного параметром registryAddress.

См. также connectToNode, setRegistryUrl, QRemoteObjectHost и QRemoteObjectRegistryHost.

[protected] QRemoteObjectNode::QRemoteObjectNode(QRemoteObjectNodePrivate &, QObject *parent)

Копирующий конструктор.

[virtual] QRemoteObjectNode::~QRemoteObjectNode()

Уничтожает экземпляр QRemoteObjectNode. Деструктор виртуальный.

ObjectType *QRemoteObjectNode::acquire(const QString &name = QString())

Возвращает указатель на реплику типа ObjectType (который является шаблоным параметром и должен наследоваться от QRemoteObjectReplica). То есть, шаблонный параметр должен быть типом, сгенерированным repc. Параметр name может использоваться для задания имени объекта во время вызова QRemoteObjectHost::enableRemoting().

QRemoteObjectDynamicReplica *QRemoteObjectNode::acquireDynamic(const QString &name)

Возвращает QRemoteObjectDynamicReplica источника name.

QAbstractItemModelReplica *QRemoteObjectNode::acquireModel(const QString &name)

Возвращает указатель на реплику, которая специфически происходит от QAbstractItemModel. Переданное значение name должно совпадать с именем, использованным в enableRemoting, помещавшим модель в сеть. Возвращаемое model будет пустым, пока не будет инициализировано источником.

bool QRemoteObjectNode::connectToNode(const QUrl &address)

Подключает клиентский узел к узлу-хосту по адресу address.

Подключения остаются валидными до удаления узла-хоста или его недоступности по сети.

После подключения клиента к хосту можно получить валидные реплики, если соответствующий источник отдаётся в удалённый доступ.

Возвращает true при успехе, false в противном случае (обычно неверный URL или подключение к уже подключённому адресу).

[signal] void QRemoteObjectNode::error(QRemoteObjectNode::ErrorCode errorCode)

QStringList QRemoteObjectNode::instances() const

Эта шаблонная функция (принимающая тип, сгенерированный repc, в качестве шаблона параметра) вернёт список имён каждого экземпляра этого типа в сети удалённых объектов. Например, если у вас определён класс Shape в файле .rep, и классы Circle и Square наследуются от определения Source, их можно разделять в сети удалённых объектов с помощью enableRemoting.

Square square;
Circle circle;
myHost.enableRemoting(&square, "Square");
myHost.enableRemoting(&circle, "Circle");

Затем можно использовать instance, чтобы найти доступные экземпляры Shape.

QStringList instances = clientNode.instances<Shape>();
// will return a QStringList containing "Circle" and "Square"
auto instance1 = clientNode.acquire<Shape>("Circle");
auto instance2 = clientNode.acquire<Shape>("Square");
...

QStringList QRemoteObjectNode::instances(const QString &typeName) const

Эта функция перегружает instances().

Эта вспомогательная функция обеспечивает тот же результат, что и шаблонная версия, но принимает имя класса источника (typeName) в качестве параметра, а не выводит его из типа класса.

ErrorCode QRemoteObjectNode::lastError() const

Возвращает последнее установленное значение ошибки.

const QRemoteObjectRegistry *QRemoteObjectNode::registry() const

Возвращает указатель на QRemoteObjectRegistry узла, если узел использует функцию реестра; в противном случае возвращает 0.

[signal] void QRemoteObjectNode::remoteObjectAdded(const QRemoteObjectSourceLocation &loc)

Этот сигнал генерируется всякий раз, когда новый объект источника добавляется в реестр. Сигнал не будет сгенерирован, если реестр не задан (т. е. для источников, подключенных напрямую с помощью connectToNode). Параметр loc содержит информацию о добавленном источнике, включая имя, тип и QUrl узла-хоста.

См. также remoteObjectRemoved и instances.

[signal] void QRemoteObjectNode::remoteObjectRemoved(const QRemoteObjectSourceLocation &loc)

Этот сигнал генерируется, когда известный объект источника удаляется из реестра. Сигнал не будет сгенерирован, если реестр не задан (т. е. для источников, подключенных напрямую с помощью connectToNode). Параметр loc содержит информацию об удалённом источнике, включая имя, тип и QUrl узла-хоста.

См. также remoteObjectAdded и instances.

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

Устанавливает name в качестве внутреннего имени для этого узла. Затем это имя выводится как часть журнальных данных (если включено). Это полезно в основном при объединении данных журналов из нескольких узлов.

void QRemoteObjectNode::setPersistedStore(QRemoteObjectPersistedStore *store, StorageOwnership ownership = DoNotPassOwnership)

Предоставляет QRemoteObjectPersistedStore store для узла, позволяя членам реплики PROP с атрибутом PERSISTED сохранять текущее значение при удалении реплики и восстанавливать сохранённое значение при следующем запуске реплики. Требует реализации класса QRemoteObjectPersistedStore для управления тем, где и как осуществляется сохранение. Используйте перечисление QRemoteObjectNode::StorageOwnership, переданное через ownership, чтобы определить, будет ли узел удалять переданный указатель или нет.

См. также QRemoteObjectPersistedStore и QRemoteObjectNode::StorageOwnership.

[virtual] void QRemoteObjectNode::timerEvent(QTimerEvent *)

Переопределён из QObject::timerEvent().

bool QRemoteObjectNode::waitForRegistry(int timeout = 30000)

Блокирует выполнение, пока реестр узла реестра не будет инициализирован или не истечёт таймаут timeout (в миллисекундах). Возвращает true если реестр успешно инициализирован при возврате, или false в противном случае.

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

Spec-Zone.ru

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