Класс 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 |
- 32 функции публичного доступа унаследованы от 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>. Он хранит логическое ИЛИ сочетание значений 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/qt-5.9/qdbusservicewatcher.html