適当に翻訳する。
dbus-bus.c の関数 dbus_bus_request_name() のコメントに名前の所有者の待ち行列の使い方が載っている。
org.freedesktop.TextEditor というアプリケーションがあり、このアプリケーションのインスタンスを複数同時に実行できるとする。その場合、そうしたインスタンス全てを名前の待ち行列の中に入れることができる。
最初に起動するインスタンス(待ち行列の先頭のもの)が org.freedesktop.TextEditor 宛てのメッセージを受信する。このインスタンスが終了すると、他のインスタンスが名前の筆頭所有者(primary owner)となりメッセージを受信するようになる。
この待ち行列が存在するおかげで、目的の名前の現在の所有者が消えるのを監視しつづけて再びその名前を要求するという動作が不要になる。
★RequestName のフラグについて
フラグは RequestName を呼び出すことで更新することができる。(すでにその名前の所有者であっても構わない。)
#DBUS_NAME_FLAG_REPLACE_EXISTING は、他の2つのフラグ(#DBUS_NAME_FLAG_ALLOW_REPLACEMENT と #DBUS_NAME_FLAG_DO_NOT_QUEUE)と異なり、個々の RequestName コールの属性である。つまり、メッセージ・バスは接続と名前の番いに対してずっと #DBUS_NAME_FLAG_REPLACE_EXISTING フラグを紐付けておくわけではない。
カレンダー
カテゴリー
最新記事
ブログ内検索
広告