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
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()의 가능한 반환 값입니다:

상수Value설명
QDBusConnectionInterface::ServiceNotRegistered0호출이 실패했으며 서비스 이름이 등록되지 않았습니다.
QDBusConnectionInterface::ServiceRegistered1이제 호출자가 서비스 이름의 소유자입니다.
QDBusConnectionInterface::ServiceQueued2호출자가 QueueService 플래그를 지정했고 서비스가 이미 등록되었으므로 대기 중입니다.

이 애플리케이션에서 서비스를 획득하면 serviceRegistered() 신호가 전송됩니다.

enum QDBusConnectionInterface::ServiceQueueOptions

서비스 이름이 이미 등록된 경우 서비스 등록의 작동 방식을 결정하기 위한 플래그입니다.

Constant설명
QDBusConnectionInterface::DontQueueService0애플리케이션이 이미 소유하고 있는 이름을 요청하면 큐잉이 수행되지 않습니다. 등록된 서비스() 호출은 단순히 실패합니다. 이것이 기본값입니다.
QDBusConnectionInterface::QueueService1요청된 서비스를 등록하려고 시도하지만 다른 애플리케이션에 이미 등록되어 있는 경우 대체하려고 시도하지 않습니다. 대신 이 애플리케이션이 포기될 때까지 대기열에 넣으면 됩니다. 이 경우 serviceRegistered() 신호가 전송됩니다.
QDBusConnectionInterface::ReplaceExistingService2다른 애플리케이션에 이미 서비스 이름이 등록되어 있는 경우 이를 바꾸려고 시도하세요.

ServiceReplacementOptions참조하세요 .

enum QDBusConnectionInterface::ServiceReplacementOptions

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

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

Constant설명
QDBusConnectionInterface::DontAllowReplacement0다른 애플리케이션이 대체할 수 없도록 허용하지 않습니다. 다른 애플리케이션이 서비스를 획득하려면 unregisterService()에 명시적으로 등록을 취소해야 합니다. 이것이 기본값입니다.
QDBusConnectionInterface::AllowReplacement1다른 애플리케이션이 ReplaceExistingService 옵션을 registerService()로 대체할 수 있도록 허용합니다. 이 경우 serviceUnregistered() 신호가 전송됩니다.

ServiceQueueOptions참조하세요 .

속성 문서

[read-only] activatableServiceNames : const QDBusReply<QStringList>

활성화 가능한 서비스 이름을 보유합니다.

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

기능에 액세스합니다:

QDBusReply<QStringList> activatableServiceNames() const

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

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() 신호가 전송됩니다. 대기열에 있는 경우 이름을 얻으면 신호가 전송됩니다. roptionAllowReplacement 인 경우 다른 애플리케이션이 이 애플리케이션을 대체하면 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 프로세스 ID(PID)를 반환합니다 serviceName.

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

이 신호는 service 에서 제공한 버스 서비스 이름(고유 연결 이름 또는 잘 알려진 서비스 이름)을 이 애플리케이션이 획득할 때 D-Bus 서버에서 방출합니다.

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

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

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

[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 에 대한 클레임을 해제합니다. 이 애플리케이션이 이름에 대한 소유권을 가지고 있었다면 다른 애플리케이션이 소유권을 주장할 수 있도록 이름이 해제됩니다. 이름만 대기열에 있는 경우 대기열에서 자신의 위치를 포기합니다.

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