Класс 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, ServiceQueueOptions qoption = DontQueueService, 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 &serviceName) |
| void | serviceUnregistered(const QString &serviceName) |
- 2 сигнала унаследованы от QObject
Дополнительные унаследованные члены
- 15 открытых функций унаследовано от QDBusAbstractInterface
- 32 открытых функции унаследовано от QObject
- 11 статические открытые члены унаследованы от 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.
END_OF_DOCUMENT_MARKERДокументация свойств
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, ServiceQueueOptions qoption = DontQueueService, 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 &serviceName)
Этот сигнал генерируется сервером D-Bus, когда имя службы шины (уникальное имя соединения или имя известной службы), заданное serviceName, приобретается этим приложением.
Приобретение происходит после того, как это приложение запросило имя с помощью registerService().
[slot] QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const
Возвращает идентификатор пользователя Unix (UID) процесса, который в настоящее время владеет службой шины serviceName.
[signal] void QDBusConnectionInterface::serviceUnregistered(const QString &serviceName)
Этот сигнал генерируется сервером D-Bus, когда это приложение теряет владение именем службы шины, заданным serviceName.
[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.9/qdbusconnectioninterface.html