이 페이지에서

QDBusConnectionInterface Class

QDBusConnectionInterface 클래스는 D-Bus 버스 데몬 서비스에 대한 액세스를 제공합니다. 더 보기...

헤더: #include <QDBusConnectionInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus
상속: QDBusAbstractInterface

공개 타입

enum RegisterServiceReply { ServiceNotRegistered, ServiceRegistered, ServiceQueued }
enum ServiceQueueOptions { DontQueueService, QueueService, ReplaceExistingService }
enum ServiceReplacementOptions { DontAllowReplacement, AllowReplacement }

속성

공개 슬롯

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)

신호

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() 신호를 통해 클라이언트가 등록되거나 등록이 해제되었다는 알림을 수신하는 것입니다.

멤버 유형 문서

enum QDBusConnectionInterface::RegisterServiceReply

registerService()의 가능한 반환 값:

상수값설명
QDBusConnectionInterface::ServiceNotRegistered0호출이 실패했으며 서비스 이름이 등록되지 않았습니다.
QDBusConnectionInterface::ServiceRegistered1호출자가 이제 해당 서비스 이름의 소유자가 되었습니다.
QDBusConnectionInterface::ServiceQueued2호출자가 QueueService 플래그를 지정했고 서비스가 이미 등록되어 있으므로, 대기열에 들어갑니다.

이 애플리케이션이 서비스를 획득하면 serviceRegistered() 신호가 발생합니다.

enum QDBusConnectionInterface::ServiceQueueOptions

서비스 이름이 이미 등록되어 있는 경우, 서비스 등록이 어떻게 처리되어야 하는지를 결정하는 플래그입니다.

상수값설명
QDBusConnectionInterface::DontQueueService0애플리케이션이 이미 소유된 이름을 요청하는 경우, 큐에 추가되는 처리는 수행되지 않습니다. registeredService() 호출은 단순히 실패합니다. 이것이 기본값입니다.
QDBusConnectionInterface::QueueService1요청된 서비스를 등록하려고 시도하지만, 다른 애플리케이션이 이미 해당 서비스를 등록한 경우에는 이를 대체하려고 시도하지 않습니다. 대신, 포기될 때까지 해당 애플리케이션을 대기열에 넣습니다. 포기될 때 ` serviceRegistered()` 신호가 발생합니다.
QDBusConnectionInterface::ReplaceExistingService2다른 애플리케이션이 이미 해당 서비스 이름을 등록한 경우, 이를 대체하려고 시도합니다.

ServiceReplacementOptions도 참조하십시오 .

enum QDBusConnectionInterface::ServiceReplacementOptions

D-Bus 서버가 다른 애플리케이션이 이 애플리케이션이 ` ReplaceExistingService ` 옵션을 사용하여 등록한 이름을 대체하도록 허용할지 여부를 결정하는 플래그입니다.

사용 가능한 값은 다음과 같습니다:

상수값설명
QDBusConnectionInterface::DontAllowReplacement0다른 애플리케이션이 본 서비스를 대체하는 것을 허용하지 않습니다. 다른 애플리케이션이 이 서비스를 획득하려면 unregisterService()를 통해 명시적으로 등록을 해제해야 합니다. 이 값이 기본값입니다.
QDBusConnectionInterface::AllowReplacement1다른 애플리케이션이 별도의 개입 없이 ` registerService()`를 통해 ` ReplaceExistingService ` 옵션을 사용하여 본 서비스를 대체하도록 허용합니다. 이 경우 ` serviceUnregistered()` 신호가 발생합니다.

ServiceQueueOptions도 참조하십시오 .

속성 설명

[read-only] activatableServiceNames : QDBusReply<QStringList>

활성화 가능한 서비스 이름을 포함합니다

버스에서 활성화할 수 있는 모든 이름을 나열합니다.

액세스 기능:

QDBusReply<QStringList> activatableServiceNames() const

[read-only] registeredServiceNames : 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

serviceName 에 지정된 서비스 이름이 현재 등록되어 있는 경우, ` true `를 반환합니다.

[slot] QDBusReply<QDBusConnectionInterface::RegisterServiceReply> QDBusConnectionInterface::registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement)

serviceName 서비스 이름을 버스에 등록하도록 요청합니다. qoption 플래그는 serviceName 가 이미 등록되어 있을 경우 D-Bus 서버가 어떻게 동작해야 하는지를 지정합니다. roption 플래그는 서버가 다른 애플리케이션이 등록된 이름을 대체하는 것을 허용할지 여부를 지정합니다.

서비스 등록에 성공하면 serviceRegistered() 신호가 발송됩니다. 대기열에 배치된 경우, 이름을 확보하면 신호가 발송됩니다. roption 가 AllowReplacement 인 경우, 다른 애플리케이션이 이 이름을 대체하면 serviceUnregistered() 신호가 발송됩니다.

unregisterService()도 참조하십시오 .

[slot, since 6.10] QDBusReply<QVariantMap> QDBusConnectionInterface::serviceCredentials(const QString &serviceName) const

현재 버스 서비스 serviceName 를 보유하고 있는 프로세스의 연결 자격 증명을 반환합니다.

자세한 내용은 <https://dbus.freedesktop.org/doc/dbus-specification.html>의 'Method: org.freedesktop.DBus.GetConnectionCredentials' 섹션을 참조하십시오.

이 함수는 Qt 6.10에서 도입되었습니다.

[slot] QDBusReply<QString> QDBusConnectionInterface::serviceOwner(const QString &name) const

name 라는 이름의 주 소유자에 대한 고유한 연결 이름을 반환합니다. 요청된 이름에 소유자가 없는 경우, ‘ org.freedesktop.DBus.Error.NameHasNoOwner ’ 오류를 반환합니다.

[slot] QDBusReply<uint> QDBusConnectionInterface::servicePid(const QString &serviceName) const

현재 버스 서비스 serviceName 를 보유하고 있는 프로세스의 유닉스 프로세스 ID(PID)를 반환합니다.

[signal] void QDBusConnectionInterface::serviceRegistered(const QString &service)

이 신호는 service 에서 지정한 버스 서비스 이름(고유 연결 이름 또는 잘 알려진 서비스 이름)이 이 애플리케이션에 할당되었을 때 D-Bus 서버에서 발신됩니다.

이 애플리케이션이 registerService()을 사용하여 이름을 요청한 후에 획득이 이루어집니다.

[slot] QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const

현재 버스 서비스 serviceName 를 보유하고 있는 프로세스의 유닉스 사용자 ID(UID)를 반환합니다.

[signal] void QDBusConnectionInterface::serviceUnregistered(const QString &service)

이 신호는 해당 애플리케이션이 service 에서 지정된 버스 서비스 이름에 대한 소유권을 상실할 때 D-Bus 서버에 의해 발송됩니다.

[slot] QDBusReply<void> QDBusConnectionInterface::startService(const QString &name)

name 라는 이름으로 지정된 서비스를 버스가 시작하도록 요청합니다.

[slot] QDBusReply<bool> QDBusConnectionInterface::unregisterService(const QString &serviceName)

registerService()에 이전에 등록되었던 버스 서비스 이름 ‘ serviceName ’에 대한 소유권을 해제합니다. 이 애플리케이션이 해당 이름의 소유권을 가지고 있었다면, 다른 애플리케이션이 이를 신청할 수 있도록 해제됩니다. 단순히 대기열에 이름을 등록해 둔 상태였다면, 대기열에서의 순위를 포기하게 됩니다.

© 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.