QDBusMessage Class
QDBusMessageクラスは、Dバス上で送受信される1つのメッセージを表します。詳細...
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) |
詳細説明
このオブジェクトは、バス上で発生する可能性のある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
指定された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() で設定された遅延応答フラグを返します。デフォルトでは、このフラグは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)
このQDBusMessage インスタンスをother と入れ替えます。
QDBusMessage::MessageType QDBusMessage::type() const
メッセージ・タイプを返します。
QDBusMessage &QDBusMessage::operator<<(const QVariant &arg)
引数arg を、メソッド呼び出しまたはシグナル発信で D-Bus 経由で送信される引数のリストに追加します。
QDBusMessage &QDBusMessage::operator=(const QDBusMessage &other)
other で指定されたオブジェクトの内容をコピーする。
注意:QDBusMessage オブジェクトは共有されます。コピーに加えられた変更は、元のオブジェクトにも影響します。詳細はsetDelayedReply() を参照してください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。