Класс QDBusConnectionInterface
Класс QDBusConnectionInterface предоставляет доступ к службе демона шины D-Bus. Подробнее...
| Заголовок: | #include <QDBusConnectionInterface> |
| qmake: | QT += dbus |
| С тех пор: | Qt 4.2 |
| Наследуется от: | QDBusAbstractInterface |
Типы публичного доступа
| Перечисление | RegisterServiceReply { ServiceNotRegistered, ServiceRegistered, ServiceQueued } |
| Перечисление | ServiceQueueOptions { DontQueueService, QueueService, ReplaceExistingService } |
| Перечисление | ServiceReplacementOptions { DontAllowReplacement, AllowReplacement } |
Свойства
- registeredServiceNames : const QDBusReply<QStringList>
- 1 свойство унаследовано от QObject
Открытые слоты
| QDBusReply<bool> | isServiceRegistered(const QString &serviceName) const |
| QDBusReply<QDBusConnectionInterface::RegisterServiceReply> | registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement) |
| QDBusReply<QStringList> | registeredServiceNames() const |
| QDBusReply<QString> | serviceOwner(const QString &name) const |
| QDBusReply<uint> | servicePid(const QString &serviceName) const |
| QDBusReply<uint> | serviceUid(const QString &serviceName) const |
| QDBusReply<void> | startService(const QString &name) |
| QDBusReply<bool> | unregisterService(const QString &serviceName) |
- 1 открытый слот унаследован от QObject
Сигналы
| void | callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call) |
| void | serviceRegistered(const QString &service) |
| void | serviceUnregistered(const QString &service) |
- 2 сигнала унаследованы от QObject
Статические члены публичного доступа
| const QMetaObject | staticMetaObject |
- 9 статических членов публичного доступа унаследовано от QObject
Дополнительные унаследованные члены
- 15 публичных функций унаследовано от QDBusAbstractInterface
- 31 публичная функция унаследована от QObject
- 9 защищенных функций унаследовано от QObject
Подробное описание
Класс QDBusConnectionInterface предоставляет доступ к службе демона шины D-Bus.
Демнон сервера шины D-Bus предоставляет специальный интерфейс org.freedesktop.DBus, который позволяет клиентам получить доступ к определенным свойствам шины, таким как текущий список подключённых клиентов. Класс QDBusConnectionInterface предоставляет доступ к этому интерфейсу.
Наиболее распространённое использование этого класса — регистрация и отмена регистрации имён служб в шине с помощью функций registerService() и unregisterService(), запросы о существующих именах с помощью функций isServiceRegistered(), registeredServiceNames() и serviceOwner(), а также получение уведомлений о том, что клиент зарегистрировался или отменил регистрацию с помощью сигналов serviceRegistered(), serviceUnregistered() и serviceOwnerChanged().
Документация по типам членов
перечисление QDBusConnectionInterface::RegisterServiceReply
Возможные возвращаемые значения из registerService():
| Константа | Значение | Описание |
|---|---|---|
QDBusConnectionInterface::ServiceNotRegistered |
0 |
Вызов завершился с ошибкой, и имя службы не было зарегистрировано. |
QDBusConnectionInterface::ServiceRegistered |
1 |
Вызывающая сторона теперь является владельцем имени службы. |
QDBusConnectionInterface::ServiceQueued |
2 |
Вызывающая сторона указала флаг QueueService, и служба уже была зарегистрирована, поэтому мы находимся в очереди. |
Сигнал serviceRegistered() будет выпущен, когда служба будет получена этим приложением.
перечисление QDBusConnectionInterface::ServiceQueueOptions
Флаги для определения поведения регистрации службы в случае, если имя службы уже зарегистрировано.
| Константа | Значение | Описание |
|---|---|---|
QDBusConnectionInterface::DontQueueService |
0 |
Если приложение запрашивает имя, которое уже принадлежит другому приложению, никакое очередирование не будет выполнено. Вызов registeredService() просто завершится с ошибкой. Это значение по умолчанию. |
QDBusConnectionInterface::QueueService |
1 |
Попытка зарегистрировать запрашиваемую службу, но не пытаться заменить её, если другая программа уже её зарегистрировала. Вместо этого приложение просто помещается в очередь до тех пор, пока ему не будет предоставлен доступ. Сигнал serviceRegistered() будет выпущен в этот момент. |
QDBusConnectionInterface::ReplaceExistingService |
2 |
Если имя службы уже зарегистрировано другим приложением, попытаться заменить его. |
См. также ServiceReplacementOptions.
перечисление QDBusConnectionInterface::ServiceReplacementOptions
Флаги для определения, разрешает ли сервер D-Bus другому приложению заменить имя, которое это приложение зарегистрировало с помощью опции ReplaceExistingService.
Возможные значения:
| Константа | Значение | Описание |
|---|---|---|
QDBusConnectionInterface::DontAllowReplacement |
0 |
Не разрешать другому приложению заменить нас. Службу необходимо явно отменить с помощью unregisterService(), чтобы другое приложение могло её получить. Это значение по умолчанию. |
QDBusConnectionInterface::AllowReplacement |
1 |
Разрешить другим приложениям заменить нас с помощью опции ReplaceExistingService для registerService() без вмешательства. В этом случае будет выпущен сигнал serviceUnregistered(). |
См. также ServiceQueueOptions.
Документация по свойствам
registeredServiceNames : const QDBusReply<QStringList>
содержит зарегистрированные имена служб
Перечисляет все имена, в настоящее время зарегистрированные в шине.
Функции доступа:
| QDBusReply<QStringList> | registeredServiceNames() const |
Документация по членам-функциям
[signal] void QDBusConnectionInterface::callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call)
Этот сигнал излучается, когда при выполнении QDBusConnection::callWithCallback() возникает ошибка. error указывает на ошибку. call — это сообщение, которое не было доставлено.
См. также QDBusConnection::callWithCallback().
[slot] QDBusReply<bool> QDBusConnectionInterface::isServiceRegistered(const QString &serviceName) const
Возвращает true, если имя службы serviceName в настоящее время зарегистрировано.
[slot] QDBusReply<QDBusConnectionInterface::RegisterServiceReply> QDBusConnectionInterface::registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement)
Запрашивает регистрацию имени службы serviceName в шине. Флаг qoption определяет поведение сервера D-Bus, если serviceName уже зарегистрировано. Флаг roption определяет, должен ли сервер разрешать другому приложению заменить наше зарегистрированное имя.
Если регистрация службы прошла успешно, будет выпущен сигнал serviceRegistered(). Если мы попали в очередь, сигнал будет выпущен, когда мы получим имя. Если roption равен AllowReplacement, сигнал serviceUnregistered() будет выпущен, если другое приложение заменит наше.
См. также unregisterService().
[slot] QDBusReply<QString> QDBusConnectionInterface::serviceOwner(const QString &name) const
Возвращает уникальное имя подключения основного владельца имени name. Если у запрошенного имени нет владельца, возвращается ошибка org.freedesktop.DBus.Error.NameHasNoOwner.
[slot] QDBusReply<uint> QDBusConnectionInterface::servicePid(const QString &serviceName) const
Возвращает идентификатор процесса Unix (PID) процесса, который в настоящее время владеет службой шины serviceName.
[signal] void QDBusConnectionInterface::serviceRegistered(const QString &service)
Этот сигнал излучается сервером D-Bus, когда имя службы шины (уникальное имя подключения или известное имя службы), заданное параметром service, приобретается этим приложением.
Приобретение происходит после того, как это приложение запросило имя с помощью registerService().
[slot] QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const
Возвращает идентификатор пользователя Unix (UID) процесса, который в настоящее время владеет службой шины serviceName.
[signal] void QDBusConnectionInterface::serviceUnregistered(const QString &service)
Этот сигнал излучается сервером D-Bus, когда это приложение теряет владение именем службы шины, заданным параметром service.
[slot] QDBusReply<void> QDBusConnectionInterface::startService(const QString &name)
Запрашивает запуск службы, заданной именем name, в шине.
[slot] QDBusReply<bool> QDBusConnectionInterface::unregisterService(const QString &serviceName)
Освобождает право владения именем службы шины serviceName, ранее зарегистрированным с помощью registerService(). Если это приложение владело именем, оно будет освобождено для того, чтобы другие приложения могли его потребовать. Если имя было только в очереди, оно откажется от своего места в очереди.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qdbusconnectioninterface.html