QDBusMessage Class
QDBusMessage 클래스는 D-Bus 버스를 통해 주고받는 메시지 하나를 나타냅니다. 더 보기...
Header: | #include <QDBusMessage> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
공용 타입
enum | MessageType { MethodCallMessage, SignalMessage, ReplyMessage, ErrorMessage, InvalidMessage } |
공용 함수
QDBusMessage() | |
QDBusMessage(const QDBusMessage &other) | |
~QDBusMessage() | |
QList<QVariant> | arguments() const |
bool | autoStartService() const |
QDBusMessage | createErrorReply(const QDBusError &error) const |
QDBusMessage | createErrorReply(QDBusError::ErrorType type, const QString &msg) const |
QDBusMessage | createErrorReply(const QString &name, const QString &msg) const |
QDBusMessage | createReply(const QList<QVariant> &arguments = QList<QVariant>()) const |
QDBusMessage | createReply(const QVariant &argument) const |
QString | errorMessage() const |
QString | errorName() const |
QString | interface() const |
bool | isDelayedReply() const |
bool | isInteractiveAuthorizationAllowed() const |
bool | isReplyRequired() const |
QString | member() const |
QString | path() const |
QString | service() const |
void | setArguments(const QList<QVariant> &arguments) |
void | setAutoStartService(bool enable) |
void | setDelayedReply(bool enable) const |
void | setInteractiveAuthorizationAllowed(bool enable) |
QString | signature() const |
void | swap(QDBusMessage &other) |
QDBusMessage::MessageType | type() const |
QDBusMessage & | operator<<(const QVariant &arg) |
QDBusMessage & | operator=(const QDBusMessage &other) |
정적 공용 멤버
QDBusMessage | createError(const QDBusError &error) |
QDBusMessage | createError(QDBusError::ErrorType type, const QString &msg) |
QDBusMessage | createError(const QString &name, const QString &msg) |
QDBusMessage | createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method) |
QDBusMessage | createSignal(const QString &path, const QString &interface, const QString &name) |
QDBusMessage | createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name) |
상세 설명
이 객체는 버스에서 발생할 수 있는 네 가지 유형의 메시지(MessageType) 중 하나를 나타낼 수 있습니다:
- 메서드 호출
- 메서드 반환값
- 신호 방출
- 오류 코드
이 유형의 객체는 정적 createError(), createMethodCall() 및 createSignal() 함수를 사용하여 생성됩니다. 메시지를 보내려면 QDBusConnection::send() 함수를 사용합니다.
멤버 유형 문서
enum QDBusMessage::MessageType
가능한 메시지 유형입니다:
상수 | 값 | 설명 |
---|---|---|
QDBusMessage::MethodCallMessage | 1 | 발신 또는 수신 메소드 호출을 나타내는 메시지입니다. |
QDBusMessage::SignalMessage | 4 | 발신 또는 수신 신호 방출을 나타내는 메시지 |
QDBusMessage::ReplyMessage | 2 | 메서드 호출의 반환값을 나타내는 메시지 |
QDBusMessage::ErrorMessage | 3 | 메서드 호출에 대한 응답으로 오류 조건을 나타내는 메시지 |
QDBusMessage::InvalidMessage | 0 | 유효하지 않은 메시지: D-Bus로부터 수신된 메시지에는 설정되지 않습니다. |
멤버 함수 문서
QDBusMessage::QDBusMessage()
비어 있는 유효하지 않은 QDBusMessage 객체를 구축합니다.
createError(), createMethodCall() 및 createSignal()도 참조하십시오 .
QDBusMessage::QDBusMessage(const QDBusMessage &other)
other 에서 제공한 객체의 복사본을 생성합니다.
참고: QDBusMessage 객체는 공유됩니다. 복사본에 대한 수정 사항은 원본에도 영향을 미칩니다. 자세한 내용은 setDelayedReply()를 참조하세요.
[noexcept]
QDBusMessage::~QDBusMessage()
개체를 폐기하고 보유 중이던 모든 리소스를 해제합니다.
QList<QVariant> QDBusMessage::arguments() const
D-Bus에서 보내거나 받은 인자 목록을 반환합니다.
setArguments()도 참조하세요 .
bool QDBusMessage::autoStartService() const
setAutoStartService()에 설정된 대로 자동 시작 플래그를 반환합니다. 기본적으로 이 플래그는 true이므로 Qt D-Bus 서비스가 아직 실행 중이 아닌 경우 자동으로 시작됩니다.
setAutoStartService()도 참조하세요 .
[static]
QDBusMessage QDBusMessage::createError(const QDBusError &error)
주어진 error 을 나타내는 새 DBus 메시지를 생성합니다.
[static]
QDBusMessage QDBusMessage::createError(QDBusError::ErrorType type, const QString &msg)
msg 메시지를 사용하여 오류 유형 type 에 대한 새 DBus 메시지를 작성합니다. DBus 메시지를 반환합니다.
[static]
QDBusMessage QDBusMessage::createError(const QString &name, const QString &msg)
주어진 name 과 msg 을 사용하여 오류를 나타내는 새 DBus 메시지를 작성합니다.
QDBusMessage QDBusMessage::createErrorReply(const QDBusError &error) const
주어진 error 객체에서 오류 응답 메시지를 나타내는 새 DBus 메시지를 생성합니다.
QDBusMessage QDBusMessage::createErrorReply(QDBusError::ErrorType type, const QString &msg) const
msg 메시지를 사용하여 오류 유형 type 에 대한 새 DBus 응답 메시지를 작성합니다. DBus 메시지를 반환합니다.
QDBusMessage QDBusMessage::createErrorReply(const QString &name, const QString &msg) const
주어진 name 과 msg 을 사용하여 오류 응답 메시지를 나타내는 새 DBus 메시지를 작성합니다.
[static]
QDBusMessage QDBusMessage::createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)
메서드 호출을 나타내는 새로운 DBus 메시지를 생성합니다. 메서드 호출은 항상 대상 주소(service, path, interface 및 method)를 알려줍니다.
DBus 버스는 메서드 이름이 고유한 경우 대상 인터페이스를 지정하지 않고도 지정된 원격 객체에서 메서드를 호출할 수 있습니다. 그러나 원격 객체의 두 인터페이스가 동일한 메서드 이름을 내보내는 경우 결과는 정의되지 않습니다(둘 중 하나가 호출되거나 오류가 반환될 수 있음).
피어 투 피어 컨텍스트(즉, 버스에서가 아닌)에서 DBus를 사용하는 경우 service 매개 변수는 선택 사항입니다.
QDBusInterface 클래스는 동기식 메서드 호출에 대한 보다 간단한 추상화를 제공합니다.
이 함수는 QDBusConnection::call()로 전송할 수 있는 QDBusMessage 객체를 반환합니다.
QDBusMessage QDBusMessage::createReply(const QList<QVariant> &arguments = QList<QVariant>()) const
주어진 arguments 을 사용하여 응답을 나타내는 새 DBus 메시지를 작성합니다.
QDBusMessage QDBusMessage::createReply(const QVariant &argument) const
주어진 argument 을 사용하여 응답을 나타내는 새 DBus 메시지를 작성합니다.
[static]
QDBusMessage QDBusMessage::createSignal(const QString &path, const QString &interface, const QString &name)
주어진 path, interface 및 name 로 신호 방출을 나타내는 새 DBus 메시지를 생성합니다.
DBus 신호는 한 애플리케이션에서 방출되며 해당 인터페이스에서 해당 신호를 수신 중인 모든 애플리케이션이 수신합니다.
반환되는 QDBusMessage 객체는 QDBusConnection::send() 함수를 사용하여 전송할 수 있습니다.
[static]
QDBusMessage QDBusMessage::createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)
주어진 path, interface 및 name 으로 특정 대상에 대한 신호 방출을 나타내는 새 DBus 메시지를 구성합니다.
DBus 신호는 한 애플리케이션에서 방출되며 대상 service 이름을 소유한 애플리케이션에서만 수신됩니다.
반환되는 QDBusMessage 객체는 QDBusConnection::send() 함수를 사용하여 전송할 수 있습니다.
QString QDBusMessage::errorMessage() const
수신된 오류와 관련된 사람이 읽을 수 있는 메시지를 반환합니다.
QString QDBusMessage::errorName() const
수신된 오류의 이름을 반환합니다.
QString QDBusMessage::interface() const
호출되는 메서드(메서드 호출의 경우) 또는 수신되는 신호의 인터페이스를 반환합니다.
bool QDBusMessage::isDelayedReply() const
setDelayedReply()에 설정된 대로 지연된 회신 플래그를 반환합니다. 기본적으로 이 플래그는 거짓이므로 Qt D-Bus 에서 필요할 때 자동 회신을 생성합니다.
bool QDBusMessage::isInteractiveAuthorizationAllowed() const
메시지에 ALLOW_INTERACTIVE_AUTHORIZATION
플래그가 설정되어 있는지 여부를 반환합니다.
setInteractiveAuthorizationAllowed() 및 QDBusAbstractInterface::isInteractiveAuthorizationAllowed()도 참조하세요 .
bool QDBusMessage::isReplyRequired() const
이 메시지에 답글을 표시할지 여부를 나타내는 플래그를 반환합니다. method call messages 메시지에만 의미가 있으며, 다른 종류의 메시지에는 답글이 표시될 수 없으며 이 함수는 항상 false를 반환합니다.
QString QDBusMessage::member() const
방출된 신호의 이름 또는 호출된 메서드의 이름을 반환합니다.
QString QDBusMessage::path() const
이 메시지가 전송되는 객체의 경로(메서드 호출의 경우)를 반환하거나 수신되는 객체의 경로(신호의 경우)를 반환합니다.
QString QDBusMessage::service() const
서비스 이름 또는 원격 메서드 호출의 버스 주소를 반환합니다.
void QDBusMessage::setArguments(const QList<QVariant> &arguments)
D-Bus를 통해 arguments 로 전송할 인수를 설정합니다. 메서드 호출의 인수가 되거나 신호의 매개변수가 됩니다.
arguments()도 참조하세요 .
void QDBusMessage::setAutoStartService(bool enable)
자동 시작 플래그를 enable 로 설정합니다. 이 플래그는 메서드 호출 메시지에서만 의미가 있으며, 이 메시지에서는 서비스 이름을 담당하는 서비스를 자동 시작하거나 자동 시작하지 않도록 D-Bus 서버에 지시합니다.
기본적으로 이 플래그는 true, 즉 서비스가 자동 시작됩니다. 즉, 서비스가 자동 시작됩니다:
이 메서드 호출이 전송되는 서비스가 이미 실행 중이면 메서드 호출이 해당 서비스로 전송됩니다. 서비스가 아직 실행 중이 아니라면 이 서비스 이름에 할당된 서비스를 자동 시작하도록 D-Bus 데몬에 요청됩니다. 이 작업은 D-Bus 서버에 알려진 디렉터리에 배치된 .service 파일에 의해 처리됩니다. 이러한 파일에는 각각 서비스 이름과 이 서비스 이름이 요청될 때 실행되어야 하는 프로그램의 경로가 포함되어 있습니다.
autoStartService()도 참조하세요 .
void QDBusMessage::setDelayedReply(bool enable) const
메시지가 나중에 회신될지( enable 가 참인 경우) 또는 Qt D-Bus 에서 자동 회신을 생성할지( enable 가 거짓인 경우) 설정합니다.
D-Bus에서 모든 메서드 호출은 호출자가 명시적으로 달리 지정하지 않는 한 호출자에게 응답을 생성해야 합니다( isReplyRequired() 참조). QtDBus 은 호출되는 모든 슬롯에 대해 이러한 응답을 자동으로 생성하지만 슬롯이 함수가 처리를 마친 후 나중에 응답을 보낼 책임이 있는지를 표시할 수도 있습니다.
isDelayedReply() 및 지연된 회신도참조하세요 .
void QDBusMessage::setInteractiveAuthorizationAllowed(bool enable)
메시지에서 ALLOW_INTERACTIVE_AUTHORIZATION
플래그를 사용하거나 사용하지 않도록 설정합니다.
이 플래그는 메서드 호출 메시지(QDBusMessage::MethodCallMessage)에만 의미가 있습니다. enable 가 true
로 설정된 경우 이 플래그는 메서드 호출자가 실제 메서드가 처리되기 전에 대화형 권한 부여가 이루어질 때까지 기다릴 준비가 되었음을 호출자에게 나타냅니다(예: 폴킷을 통해).
enable 이 false
으로 설정된 경우 플래그가 설정되지 않으므로 상대방이 비대화형으로 즉시 권한 부여 결정을 내릴 것으로 예상됩니다. 이것이 기본값입니다.
org.freedesktop.DBus.Error.InteractiveAuthorizationRequired
오류는 인증이 실패했지만 이 플래그가 설정되어 있었다면 성공할 수 있었음을 나타냅니다.
isInteractiveAuthorizationAllowed() 및 QDBusAbstractInterface::setInteractiveAuthorizationAllowed()도 참조하세요 .
QString QDBusMessage::signature() const
수신된 신호의 서명 또는 메서드 호출의 출력 인수를 반환합니다.
[noexcept]
void QDBusMessage::swap(QDBusMessage &other)
이 메시지를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
QDBusMessage::MessageType QDBusMessage::type() const
메시지 유형을 반환합니다.
QDBusMessage &QDBusMessage::operator<<(const QVariant &arg)
메서드 호출 또는 신호 방출에서 D-Bus를 통해 전송할 인수 목록에 arg 인수를 추가합니다.
QDBusMessage &QDBusMessage::operator=(const QDBusMessage &other)
other 에 지정된 객체의 내용을 복사합니다.
참고: QDBusMessage 객체는 공유됩니다. 복사본에 대한 수정 사항은 원본에도 영향을 미칩니다. 자세한 내용은 setDelayedReply()를 참조하세요.
© 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.