Класс QDBusConnectionInterface
Класс QDBusConnectionInterface предоставляет доступ к службе демона шины D-Bus. Подробнее...
| Заголовок: | #include <QDBusConnectionInterface> |
| CMake: | find_package(Qt6 COMPONENTS Dbus REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Dbus) |
| qmake: | QT += dbus |
| Наследует: | QDBusAbstractInterface |
Открытые типы
| Перечисление | 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.
Документация свойств
[read-only, since 5.14] activatableServiceNames : const QDBusReply<QStringList>
содержит имена активируемых служб
Список всех имен, которые могут быть активированы в шине.
Это свойство было добавлено в Qt 5.14.
Функции доступа:
| QDBusReply<QStringList> | activatableServiceNames() const |
[read-only] 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-6.1/qdbusconnectioninterface.html