Класс 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