Класс 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
Дополнительные унаследованные члены
- 15 открытых функций унаследовано от QDBusAbstractInterface
- 34 открытых функции унаследовано от QObject
- 1 открытая переменная унаследована от QObject
- 10 статических открытых членов унаследовано от QObject
- 9 защищённых функций унаследовано от QObject
- 2 защищённых переменных унаследовано от 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. Если у запрошенного имени нет владельца, возвращается ошибка.
[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/archives/qt-5.11/qdbusconnectioninterface.html