Spec-Zone.ru › Qt 5.6

Класс QDBusServiceWatcher

Класс QDBusServiceWatcher позволяет отслеживать изменения сервиса на шине. Подробнее...

Заголовок: #include <QDBusServiceWatcher>
qmake: QT += dbus
С момента: Qt 4.6
Наследует: QObject
  • Список всех членов, включая унаследованные

Открытые типы

флаги WatchMode
перечисление WatchModeFlag { WatchForRegistration, WatchForUnregistration, WatchForOwnerChange }

Свойства

  • watchMode : WatchMode
  • watchedServices : QStringList
  • 1 свойство унаследовано от QObject

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

QDBusServiceWatcher(QObject *parent = Q_NULLPTR)
QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, WatchMode watchMode = WatchForOwnerChange, QObject *parent = Q_NULLPTR)
~QDBusServiceWatcher()
void addWatchedService(const QString &newService)
QDBusConnection connection() const
bool removeWatchedService(const QString &service)
void setConnection(const QDBusConnection &connection)
void setWatchMode(WatchMode mode)
void setWatchedServices(const QStringList &services)
WatchMode watchMode() const
QStringList watchedServices() const
  • 31 открытая функция унаследована от QObject

Сигналы

void serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)
void serviceRegistered(const QString &serviceName)
void serviceUnregistered(const QString &serviceName)
  • 2 сигнала унаследованы от QObject

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

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

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

Класс QDBusServiceWatcher позволяет отслеживать изменения сервиса на шине.

Объект QDBusServiceWatcher может уведомлять приложение об изменении владельца имени сервиса на шине. Он имеет три режима отслеживания:

  • Отслеживание только регистрации сервиса.
  • Отслеживание только отмены регистрации сервиса.
  • Отслеживание любого изменения владения сервисом (по умолчанию).

Помимо создания или удаления, сервисы могут изменять владельцев без операции unregister/register. Поэтому сигналы serviceRegistered() и serviceUnregistered() могут не быть выпущены в этом случае.

Этот класс более эффективен, чем использование сигнала QDBusConnectionInterface::serviceOwnerChanged(), потому что он позволяет получать только сигналы, в которых заинтересован класс.

См. также QDBusConnection.

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

перечисление QDBusServiceWatcher::WatchModeFlag флаги QDBusServiceWatcher::WatchMode

Класс QDBusServiceWatcher поддерживает три разных режима отслеживания, которые настраиваются с помощью этого флага:

Константа Значение Описание
QDBusServiceWatcher::WatchForRegistration 0x01 отслеживать только регистрацию сервиса, игнорируя любые сигналы, связанные с другими изменениями владения сервисом.
QDBusServiceWatcher::WatchForUnregistration 0x02 отслеживать только отмену регистрации сервиса, игнорируя любые сигналы, связанные с другими изменениями владения сервисом.
QDBusServiceWatcher::WatchForOwnerChange 0x03 отслеживать любые изменения владения сервисом.

Тип WatchMode — это псевдоним для QFlags<WatchModeFlag>. Он хранит объединение по оператору OR значений WatchModeFlag.

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

watchMode : WatchMode

Свойство watchMode хранит текущий режим отслеживания для этого объекта QDBusServiceWatcher. Значение по умолчанию для этого свойства — QDBusServiceWatcher::WatchForOwnershipChange.

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

WatchMode watchMode() const
void setWatchMode(WatchMode mode)

watchedServices : QStringList

Свойство servicesWatched хранит список отслеживаемых сервисов.

Обратите внимание, что изменение этого списка с помощью setServicesWatched() — это операция с высокой стоимостью. Если можно, предпочтительнее изменять его с помощью addWatchedService() и removeWatchedService().

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

QStringList watchedServices() const
void setWatchedServices(const QStringList &services)

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

QDBusServiceWatcher::QDBusServiceWatcher(QObject *parent = Q_NULLPTR)

Создает объект QDBusServiceWatcher. Обратите внимание, что до тех пор, пока вы не установите соединение с помощью setConnection(), этот объект не будет генерировать сигналы.

Параметр parent передаётся в QObject для установки родителя этого объекта.

QDBusServiceWatcher::QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, WatchMode watchMode = WatchForOwnerChange, QObject *parent = Q_NULLPTR)

Создаёт объект QDBusServiceWatcher и прикрепляет его к соединению connection. Кроме того, эта функция сразу же начинает отслеживать изменения watchMode для сервиса service.

Параметр parent передаётся в QObject для установки родителя этого объекта.

QDBusServiceWatcher::~QDBusServiceWatcher()

Уничтожает объект QDBusServiceWatcher и освобождает любые ресурсы, связанные с ним.

void QDBusServiceWatcher::addWatchedService(const QString &newService)

Добавляет newService в список служб, за которыми следит этот объект. Эта функция более эффективна, чем setWatchedServices(), и её следует использовать всякий раз, когда это возможно, для добавления служб.

QDBusConnection QDBusServiceWatcher::connection() const

Возвращает QDBusConnection, к которому прикреплен этот объект.

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

bool QDBusServiceWatcher::removeWatchedService(const QString &service)

Удаляет service из списка служб, за которыми следит этот объект. Обратите внимание, что уведомления D-Bus асинхронны, поэтому могут всё ещё существовать ожидающие доставки сигналы о service. Эти сигналы всё равно будут испускаться при обработке сообщений D-Bus.

Эта функция возвращает true если какие-либо службы были удалены.

[signal] void QDBusServiceWatcher::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)

Этот сигнал испускается всякий раз, когда этот объект обнаруживает изменение владельца службы, относящееся к службе serviceName. Параметр oldOwner содержит имя старого владельца, а newOwner — нового владельца. Оба oldOwner и newOwner — уникальные имена соединений.

Обратите внимание, что этот сигнал также испускается всякий раз, когда служба serviceName регистрировалась или отменялась. Если она была зарегистрирована, oldOwner будет содержать пустую строку, а если она была отменена, newOwner будет содержать пустую строку.

Если вам нужно только узнать, зарегистрирована или отменена служба, не уведомляясь о том, что владение изменилось, рассмотрите использование специальных режимов для этих операций. Этот класс более эффективен, если вы используете более специализированные режимы.

См. также serviceRegistered() и serviceUnregistered().

[signal] void QDBusServiceWatcher::serviceRegistered(const QString &serviceName)

Этот сигнал испускается всякий раз, когда этот объект обнаруживает, что служба serviceName стала доступна в шине.

См. также serviceUnregistered() и serviceOwnerChanged().

[signal] void QDBusServiceWatcher::serviceUnregistered(const QString &serviceName)

Этот сигнал испускается всякий раз, когда этот объект обнаруживает, что служба serviceName была отменена в шине и больше недоступна.

См. также serviceRegistered() и serviceOwnerChanged().

void QDBusServiceWatcher::setConnection(const QDBusConnection &connection)

Устанавливает подключение D-Bus, к которому прикреплен этот объект, равным connection. Все отслеживаемые службы будут перенесены в это подключение.

Обратите внимание, что объекты QDBusConnection используют подсчёт ссылок: QDBusServiceWatcher будет хранить ссылку на это подключение, пока оно существует. Подключение не закрывается, пока счётчик ссылок не станет нулём, поэтому это гарантирует, что любые уведомления будут получены, пока существует этот объект QDBusServiceWatcher.

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

void QDBusServiceWatcher::setWatchedServices(const QStringList &services)

Устанавливает список отслеживаемых служб D-Bus в services.

Обратите внимание, что установка всего списка означает удаление всех предыдущих правил для отслеживания служб и добавление новых. Это дорогостоящая операция и её следует избегать, если возможно. Вместо этого используйте addWatchedService() и removeWatchedService(), если вы можете манипулировать записями в списке.

Примечание: Функция-сеттер для свойства watchedServices.

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

QStringList QDBusServiceWatcher::watchedServices() const

Возвращает список служб D-Bus, за которыми ведётся наблюдение.

Примечание: Функция-геттер для свойства watchedServices.

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

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

Spec-Zone.ru

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