QDBusConnectionInterface Class
La clase QDBusConnectionInterface proporciona acceso al servicio daemon del bus D-Bus. Más...
| Cabecera: | #include <QDBusConnectionInterface> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus)target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake: | QT += dbus |
| Hereda: | QDBusAbstractInterface |
Tipos públicos
| enum | RegisterServiceReply { ServiceNotRegistered, ServiceRegistered, ServiceQueued } |
| enum | ServiceQueueOptions { DontQueueService, QueueService, ReplaceExistingService } |
| enum | ServiceReplacementOptions { DontAllowReplacement, AllowReplacement } |
Propiedades
- activatableServiceNames : QDBusReply<QStringList>
- registeredServiceNames : QDBusReply<QStringList>
Tragamonedas públicas
| 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 |
(since 6.10) QDBusReply<QVariantMap> | serviceCredentials(const QString &serviceName) 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) |
Señales
| void | callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call) |
| void | serviceRegistered(const QString &service) |
| void | serviceUnregistered(const QString &service) |
Descripción detallada
El demonio servidor de bus D-Bus proporciona una interfaz especial org.freedesktop.DBus que permite a los clientes acceder a ciertas propiedades del bus, como la lista actual de clientes conectados. La clase QDBusConnectionInterface proporciona acceso a esa interfaz.
Los usos más comunes de esta clase son registrar y dar de baja nombres de servicio en el bus utilizando las funciones registerService() y unregisterService(), consultar sobre nombres existentes utilizando las funciones isServiceRegistered(), registeredServiceNames() y serviceOwner(), y recibir notificaciones de que un cliente se ha registrado o dado de baja a través de las señales serviceRegistered(), serviceUnregistered() y serviceOwnerChanged().
Documentación de tipos de miembros
enum QDBusConnectionInterface::RegisterServiceReply
Los posibles valores de retorno de registerService():
| Constante | Valor | Descripción |
|---|---|---|
QDBusConnectionInterface::ServiceNotRegistered | 0 | La llamada ha fallado y el nombre de servicio no se ha registrado. |
QDBusConnectionInterface::ServiceRegistered | 1 | El llamante es ahora el propietario del nombre de servicio. |
QDBusConnectionInterface::ServiceQueued | 2 | El llamante especificó la bandera QueueService y el servicio ya estaba registrado, por lo que estamos en cola. |
La señal serviceRegistered() será emitida cuando el servicio sea adquirido por esta aplicación.
enum QDBusConnectionInterface::ServiceQueueOptions
Banderas para determinar cómo debe comportarse el registro de un servicio, en caso de que el nombre del servicio ya esté registrado.
| Constante | Valor | Descripción |
|---|---|---|
QDBusConnectionInterface::DontQueueService | 0 | Si una aplicación solicita un nombre que ya tiene dueño, no se realizará ninguna cola. La llamada a registeredService() simplemente fallará. Este es el valor por defecto. |
QDBusConnectionInterface::QueueService | 1 | Intenta registrar el servicio solicitado, pero no intenta reemplazarlo si otra aplicación ya lo tiene registrado. En su lugar, simplemente pone esta aplicación en cola, hasta que se abandone. La señal serviceRegistered() será emitida cuando eso ocurra. |
QDBusConnectionInterface::ReplaceExistingService | 2 | Si otra aplicación ya tiene registrado el nombre del servicio, intente reemplazarlo. |
Véase también ServiceReplacementOptions.
enum QDBusConnectionInterface::ServiceReplacementOptions
Banderas para determinar si el servidor D-Bus debe permitir que otra aplicación reemplace un nombre que esta aplicación ha registrado con la opción ReplaceExistingService.
Los valores posibles son:
| Constante | Valor | Descripción |
|---|---|---|
QDBusConnectionInterface::DontAllowReplacement | 0 | No permitir que otra aplicación nos sustituya. El servicio debe ser explícitamente desregistrado con unregisterService() para que otra aplicación pueda adquirirlo. Este es el valor por defecto. |
QDBusConnectionInterface::AllowReplacement | 1 | Permitir que otras aplicaciones nos sustituyan con la opción ReplaceExistingService de registerService() sin intervención. Si eso ocurre, se emitirá la señal serviceUnregistered(). |
Véase también ServiceQueueOptions.
Documentación de propiedades
[read-only] activatableServiceNames : QDBusReply<QStringList>
contiene los nombres de servicio activables
Enumera todos los nombres que pueden activarse en el bus.
Funciones de acceso:
| QDBusReply<QStringList> | activatableServiceNames() const |
[read-only] registeredServiceNames : QDBusReply<QStringList>
contiene los nombres de servicio registrados
Lista todos los nombres registrados actualmente en el bus.
Funciones de acceso:
| QDBusReply<QStringList> | registeredServiceNames() const |
Documentación de funciones miembro
[signal] void QDBusConnectionInterface::callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call)
Esta señal se emite cuando se produce un error durante una QDBusConnection::callWithCallback(). error especifica el error. call es el mensaje que no se ha podido entregar.
Véase también QDBusConnection::callWithCallback().
[slot] QDBusReply<bool> QDBusConnectionInterface::isServiceRegistered(const QString &serviceName) const
Devuelve true si el nombre de servicio serviceName está registrado actualmente.
[slot] QDBusReply<QDBusConnectionInterface::RegisterServiceReply> QDBusConnectionInterface::registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement)
Solicita registrar el nombre de servicio serviceName en el bus. La bandera qoption especifica cómo debe comportarse el servidor D-Bus si serviceName ya está registrado. La bandera roption especifica si el servidor debe permitir que otra aplicación reemplace nuestro nombre registrado.
Si el registro del servicio tiene éxito, se emitirá la señal serviceRegistered(). Si estamos en cola, la señal se emitirá cuando obtengamos el nombre. Si roption es AllowReplacement, se emitirá la señal serviceUnregistered() si otra aplicación sustituye a ésta.
Véase también unregisterService().
[slot, since 6.10] QDBusReply<QVariantMap> QDBusConnectionInterface::serviceCredentials(const QString &serviceName) const
Devuelve las credenciales de conexión para el proceso que actualmente mantiene el servicio de bus serviceName.
Ver <https://dbus.freedesktop.org/doc/dbus-specification.html> sección: 'Method: org.freedesktop.DBus.GetConnectionCredentials' para más información.
Esta función se introdujo en Qt 6.10.
[slot] QDBusReply<QString> QDBusConnectionInterface::serviceOwner(const QString &name) const
Devuelve el nombre de conexión único del propietario principal del nombre name. Si el nombre solicitado no tiene propietario, devuelve un error org.freedesktop.DBus.Error.NameHasNoOwner.
[slot] QDBusReply<uint> QDBusConnectionInterface::servicePid(const QString &serviceName) const
Devuelve el ID de proceso Unix (PID) para el proceso que actualmente mantiene el servicio de bus serviceName.
[signal] void QDBusConnectionInterface::serviceRegistered(const QString &service)
Esta señal es emitida por el servidor D-Bus cuando el nombre de servicio de bus (nombre de conexión único o nombre de servicio conocido) dado por service es adquirido por esta aplicación.
La adquisición se produce después de que esta aplicación haya solicitado un nombre mediante registerService().
[slot] QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const
Devuelve el ID de usuario Unix (UID) para el proceso que actualmente mantiene el servicio de bus serviceName.
[signal] void QDBusConnectionInterface::serviceUnregistered(const QString &service)
Esta señal es emitida por el servidor D-Bus cuando esta aplicación pierde la propiedad del nombre de servicio de bus dado por service.
[slot] QDBusReply<void> QDBusConnectionInterface::startService(const QString &name)
Solicita que el autobús inicie el servicio indicado por el nombre name.
[slot] QDBusReply<bool> QDBusConnectionInterface::unregisterService(const QString &serviceName)
Libera la reclamación sobre el nombre de servicio de autobús serviceName, que había sido registrado previamente en registerService(). Si esta aplicación era propietaria del nombre, se liberará para que otras aplicaciones puedan reclamarlo. Si sólo tenía el nombre en cola, cede su posición en la cola.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.