Класс 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
Возвращает идентификатор процесса 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.14/qdbusconnectioninterface.html