Класс QDBusConnectionInterface
Класс QDBusConnectionInterface предоставляет доступ к службе демона шины D-Bus. Подробнее...
| Заголовок: | #include <QDBusConnectionInterface> |
| qmake: | QT += dbus |
| С момента: | Qt 4.2 |
| Наследует: | QDBusAbstractInterface |
Этот класс был представлен в Qt 4.2.
Типы публичного доступа
| Перечисление | RegisterServiceReply { ServiceNotRegistered, ServiceRegistered, ServiceQueued } |
| Перечисление | ServiceQueueOptions { DontQueueService, QueueService, ReplaceExistingService } |
| Перечисление | ServiceReplacementOptions { DontAllowReplacement, AllowReplacement } |
Свойства
- activatableServiceNames : const QDBusReply<QStringList>
- registeredServiceNames : const QDBusReply<QStringList>
Открытые слоты
| QDBusReply<QStringList> | activatableServiceNames() const |
| 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) |
Сигналы
| void | callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call) |
| void | serviceRegistered(const QString &service) |
| void | serviceUnregistered(const QString &service) |
Подробное описание
Демон сервера шины 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.
END_OF_DOCUMENT_MARKER ```Документация свойств
activatableServiceNames : const QDBusReply<QStringList>
содержит имена активируемых сервисов
Список всех имён, которые могут быть активированы в шине.
Это свойство было добавлено в Qt 5.14.
Функции доступа:
| QDBusReply<QStringList> | activatableServiceNames() const |
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
Возвращает идентификатор процесса (PID) в Unix для процесса, в данный момент владеющего сервисом шины serviceName.
[signal] void QDBusConnectionInterface::serviceRegistered(const QString &service)
Этот сигнал генерируется сервером D-Bus, когда имя сервиса шины (уникальное имя подключения или известное имя сервиса), заданное service, приобретается этим приложением.
Приобретение происходит после того, как это приложение запросило имя с помощью registerService().
[slot] QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const
Возвращает идентификатор пользователя (UID) в Unix для процесса, в данный момент владеющего сервисом шины 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.15/qdbusconnectioninterface.html