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::MethodCallMessage1発信または着信メソッド呼び出しを表すメッセージ
QDBusMessage::SignalMessage4発信または着信シグナルを表すメッセージ
QDBusMessage::ReplyMessage2メソッド呼び出しの戻り値を表すメッセージ
QDBusMessage::ErrorMessage3メソッド呼び出しに対するエラー状態を表すメッセージ。
QDBusMessage::InvalidMessage0無効なメッセージ: 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)

与えられたnamemsg を用いて、エラーを表す新しい 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

与えられたnamemsg を使ってエラー返信メッセー ジを表す新しい 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)

与えられたpathinterfacename でシグナル発信を表す新しい DBus メッセージを構築します。

DBus シグナルはあるアプリケーションから発信され、そのインターフェイスからそのシグナルをリッスンしているすべてのアプリケーションによって受信されます。

返されたQDBusMessage オブジェクトはQDBusConnection::send() 関数を使って送信できます。

[static] QDBusMessage QDBusMessage::createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)

与えられたpathinterfacename で新しい 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) でのみ意味を持ちます。enabletrue に設定されている場合、このフラグは、メソッドの呼び出し元が、実際のメソッドが処理される前に(たとえば Polkit 経由で)対話的な認可が行われるのを待つ用意があることを呼び出し元に示します。

enablefalse に設定されている場合、フラグは設定されない。これは、相手 側が非対話的かつ迅速に認可を決定することを期待されていることを意 味する。これがデフォルトである。

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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。