QDBusServiceWatcher Class
QDBusServiceWatcher 클래스를 사용하면 사용자가 버스 서비스 변경을 감시할 수 있습니다. 더 보기...
헤더: | #include <QDBusServiceWatcher> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
상속합니다: | QObject |
공용 유형
flags | WatchMode |
enum | WatchModeFlag { WatchForRegistration, WatchForUnregistration, WatchForOwnerChange } |
속성
- watchMode : WatchMode
- watchedServices : QStringList
공공 기능
QDBusServiceWatcher(QObject *parent = nullptr) | |
QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, QDBusServiceWatcher::WatchMode watchMode = WatchForOwnerChange, QObject *parent = nullptr) | |
virtual | ~QDBusServiceWatcher() |
void | addWatchedService(const QString &newService) |
QBindable<QDBusServiceWatcher::WatchMode> | bindableWatchMode() |
QBindable<QStringList> | bindableWatchedServices() |
QDBusConnection | connection() const |
bool | removeWatchedService(const QString &service) |
void | setConnection(const QDBusConnection &connection) |
void | setWatchMode(QDBusServiceWatcher::WatchMode mode) |
void | setWatchedServices(const QStringList &services) |
QDBusServiceWatcher::WatchMode | watchMode() const |
QStringList | watchedServices() const |
신호
void | serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner) |
void | serviceRegistered(const QString &serviceName) |
void | serviceUnregistered(const QString &serviceName) |
상세 설명
QDBusServiceWatcher 객체는 버스에서 서비스 이름의 소유권 변경을 애플리케이션에 알리는 데 사용할 수 있습니다. 세 가지 감시 모드가 있습니다:
- 서비스 등록만 감시.
- 서비스 등록 취소만 감시.
- 모든 종류의 서비스 소유권 변경 감시(기본 모드).
서비스가 생성되거나 삭제되는 것 외에도 등록/등록 취소 작업이 발생하지 않고도 소유자가 변경될 수 있습니다. 따라서 이러한 경우 serviceRegistered() 및 serviceUnregistered() 신호가 전송되지 않을 수 있습니다.
이 클래스는 해당 클래스가 관심 있는 신호만 수신할 수 있기 때문에 QDBusConnectionInterface::serviceOwnerChanged() 신호를 사용하는 것보다 더 효율적입니다.
서비스 이름 뒤에 '*' 문자를 붙이면 지정된 네임스페이스 내의 모든 서비스 이름이 일치합니다.
예를 들어 "com.example.backend1*"는 다음과 일치합니다.
- com.example.backend1
- com.example.backend1.foo
- com.example.backend1.foo.bar
같은 도메인의 하위 문자열(예: "com.example.backend12")은 일치하지 않습니다.
QDBusConnection 를참조하세요 .
멤버 유형 문서
열거형 QDBusServiceWatcher::WatchModeFlag
플래그 QDBusServiceWatcher::WatchMode
QDBusServiceWatcher 는 이 플래그로 구성되는 세 가지 감시 모드를 지원합니다:
Constant | 값 | 설명 |
---|---|---|
QDBusServiceWatcher::WatchForRegistration | 0x01 | 다른 서비스 소유권 변경과 관련된 모든 신호를 무시하고 서비스 등록만 감시합니다. |
QDBusServiceWatcher::WatchForUnregistration | 0x02 | 서비스 등록 취소만 감시하고 다른 서비스 소유권 변경과 관련된 모든 신호를 무시합니다. |
QDBusServiceWatcher::WatchForOwnerChange | 0x03 | 모든 종류의 서비스 소유권 변경을 감시합니다. |
WatchMode 유형은 QFlags<WatchModeFlag>에 대한 typedef입니다. WatchModeFlag 값의 OR 조합을 저장합니다.
속성 문서
[bindable]
watchMode : WatchMode
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 이 QDBusServiceWatcher 개체에 대한 현재 감시 모드를 보유합니다.
이 프로퍼티의 기본값은 QDBusServiceWatcher::WatchForOwnershipChange입니다.
[bindable]
watchedServices : QStringList
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 시청한 서비스 목록을 보유합니다.
참고: setServicesWatched()로 이 목록을 수정하는 것은 비용이 많이 드는 작업입니다. 가능하면 addWatchedService() 및 removeWatchedService()을 사용하여 변경하는 것이 좋습니다.
멤버 함수 문서
[explicit]
QDBusServiceWatcher::QDBusServiceWatcher(QObject *parent = nullptr)
QDBusServiceWatcher 객체를 생성합니다. setConnection ()로 연결을 설정할 때까지 이 개체는 어떠한 신호도 방출하지 않습니다.
parent 매개 변수는 QObject 에 전달되어 이 객체의 부모를 설정합니다.
QDBusServiceWatcher::QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, QDBusServiceWatcher::WatchMode watchMode = WatchForOwnerChange, QObject *parent = nullptr)
QDBusServiceWatcher 객체를 생성하고 connection 연결에 연결합니다. 또한 이 함수는 즉시 service 서비스에 대한 watchMode 변경 사항 감시를 시작합니다.
parent 매개 변수는 QObject 에 전달되어 이 객체의 부모를 설정합니다.
[virtual noexcept]
QDBusServiceWatcher::~QDBusServiceWatcher()
QDBusServiceWatcher 개체를 삭제하고 관련된 모든 리소스를 해제합니다.
void QDBusServiceWatcher::addWatchedService(const QString &newService)
이 객체가 감시하는 서비스 목록에 newService 을 추가합니다. 이 함수는 setWatchedServices()보다 효율적이므로 가능한 경우 서비스를 추가할 때마다 사용해야 합니다.
watchedServices 의 기존 바인딩을 제거합니다.
QDBusConnection QDBusServiceWatcher::connection() const
이 객체가 연결된 QDBusConnection 을 반환합니다.
setConnection()도 참조하세요 .
bool QDBusServiceWatcher::removeWatchedService(const QString &service)
이 객체가 감시 중인 서비스 목록에서 service 을 제거합니다. D-Bus 알림은 비동기식이므로 service 에 대한 전달 대기 중인 신호가 여전히 있을 수 있습니다. 이러한 신호는 D-Bus 메시지가 처리될 때마다 계속 방출됩니다.
watchedServices 의 기존 바인딩을 제거합니다.
이 함수는 서비스가 제거된 경우 true
을 반환합니다.
[signal]
void QDBusServiceWatcher::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)
이 신호는 이 개체가 serviceName 서비스와 관련된 서비스 소유권 변경이 있음을 감지할 때마다 전송됩니다. oldOwner 매개변수에는 이전 소유자 이름이 포함되어 있고 newOwner 은 새 소유자입니다. oldOwner 및 newOwner 모두 고유한 연결 이름입니다.
이 신호는 serviceName 서비스가 등록되거나 등록되지 않은 경우에도 전송됩니다. 등록된 경우 oldOwner 에는 빈 문자열이 포함되며, 등록되지 않은 경우 newOwner 에는 빈 문자열이 포함됩니다.
소유권이 변경되었다는 알림 없이 서비스가 등록되었는지 또는 등록되지 않았는지 여부만 확인해야 하는 경우에는 해당 작업에 대해 특정 모드를 사용하는 것이 좋습니다. 이 클래스는 보다 구체적인 모드를 사용하는 경우 더 효율적입니다.
serviceRegistered() 및 serviceUnregistered()도 참조하세요 .
[signal]
void QDBusServiceWatcher::serviceRegistered(const QString &serviceName)
이 신호는 이 객체가 버스에서 serviceName 서비스를 사용할 수 있게 되었음을 감지할 때마다 발산됩니다.
serviceUnregistered() 및 serviceOwnerChanged()도 참조하세요 .
[signal]
void QDBusServiceWatcher::serviceUnregistered(const QString &serviceName)
이 개체가 serviceName 서비스가 버스에서 등록 취소되어 더 이상 사용할 수 없음을 감지할 때마다 이 신호가 전송됩니다.
serviceRegistered() 및 serviceOwnerChanged()도 참조하세요 .
void QDBusServiceWatcher::setConnection(const QDBusConnection &connection)
이 개체가 연결된 D-Bus 연결을 connection 으로 설정합니다. 감시되는 모든 서비스가 이 연결로 전송됩니다.
QDBusConnection 개체는 참조 카운트됩니다. QDBusServiceWatcher 은 이 연결이 존재하는 동안 이 연결에 대한 참조를 유지합니다. 참조 카운트가 0이 될 때까지 연결이 닫히지 않으므로 이 QDBusServiceWatcher 개체가 존재하는 동안 모든 알림을 받을 수 있습니다.
connection()도 참조하세요 .
void QDBusServiceWatcher::setWatchedServices(const QStringList &services)
감시 중인 D-Bus 서비스 목록을 services 로 설정합니다.
전체 목록을 설정하면 서비스 시청에 대한 이전 규칙을 모두 제거하고 새 규칙을 추가해야 한다는 점에 유의하세요. 이 작업은 비용이 많이 드는 작업이므로 가능하면 피해야 합니다. 대신 addWatchedService() 및 removeWatchedService()을 사용하여 목록의 항목을 조작할 수 있습니다.
watchedServices 의 기존 바인딩을 제거합니다.
참고: watchedServices 속성에 대한 세터 함수입니다.
watchedServices()도 참조하세요 .
QStringList QDBusServiceWatcher::watchedServices() const
감시 중인 D-Bus 서비스 목록을 반환합니다.
참고: watchedServices 속성에 대한 게터 함수입니다.
setWatchedServices()도 참조하세요 .
© 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.