QDBusMessage Class
QDBusMessageクラスは、Dバス上で送受信される1つのメッセージを表します。詳細...
ヘッダー | #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) |
詳細説明
このオブジェクトは、バス上で発生する可能性のある4つの異なるタイプのメッセージ (MessageType) のいずれかを表すことができます:
- メソッド呼び出し
- メソッドの戻り値
- シグナル・エミッション
- エラーコード
このタイプのオブジェクトは、staticcreateError ()、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 バスでは、メソッド名が一意であれば、宛先インタフェースを指定せずにリモートオブジェクト上のメソッドを呼び出すことができます。しかし、リモートオブジェクト上の 2 つのインターフェースが同じメソッド名をエクスポートしている場合、結果は未定義です(2 つのうち 1 つが呼び出されるか、エラーが返されます)。
ピアツーピアのコンテキストで DBus を使う場合(つまりバス上ではない)、service パラメータはオプションです。
QDBusInterface クラスは同期メソッド呼び出しをよりシンプルに抽象化したものです。
この関数はQDBusConnection::call() で送信できるQDBusMessage オブジェクトを返します。
QDBusMessage QDBusMessage::createReply(const QList<QVariant> &arguments = QList<QVariant>()) const
返信を表す新しい DBus メッセージを、与えられたarguments で構築します。
QDBusMessage QDBusMessage::createReply(const QVariant &argument) const
返信を表す新しい DBus メッセージを、与えられたargument で構築します。
[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() で設定された遅延返信フラグを返す。デフォルトでは、このフラグは false です。これは、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 がtrueの場合)、またはQt D-Bus によって自動返信を生成するか(enable がfalseの場合)を設定する。
D-Busでは、呼び出し元が明示的に指定しない限り(isReplyRequired()を参照)、すべてのメソッド呼び出しは呼び出し元への返信を生成する必要があります。QtDBus は、呼び出されるすべてのスロットに対してそのような返信を自動的に生成しますが、関数の処理が終了した後で、スロットが返信の送信を担当するかどうかを指定することもできます。
isDelayedReply()およびDelayed Repliesも参照の こと。
void QDBusMessage::setInteractiveAuthorizationAllowed(bool enable)
メッセージのALLOW_INTERACTIVE_AUTHORIZATION
フラグを有効または無効にします。
このフラグはメソッド呼び出しメッセージ(QDBusMessage::MethodCallMessage)に対してのみ意味を持つ。enable がtrue
にセットされている場合、このフラグは、実際のメソッドが処理される前 に、メソッドの呼び出し元が(例えばPolkitを経由して)対話的な認可が行われるのを待 つ用意があることを着呼側に示す。
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バス経由で送信される引数のリストに引数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.