囲みコラム

データコンテナとしてのBMessage


本文で述べたように、BMessageクラスは可変長のメッセージデータを格納することができ、また格納した個々のデータ項目を名前と型で管理できるのが特徴です。他のOSでは、固定長の構造体を使ってイベント内容を伝えるのが一般的ですが、それによって伝えることのできる情報は、システムによって定義されたものに限られてしまいます。これに比べて、BMessageクラスを使うと多様な情報を伝達でき、高度な処理でも簡単にプログラミングできます。

なお、Mac OSでアプリケーション間通信に利用されるAppleEventでは、BMessageクラスと同様のデータ格納機構が提供されています。とはいえ、第3章でも述べたように、Mac OSのAppleEventとBeOSのBMessageを比べると、AppleEventがアプリケーション間の一対一の通信にしか利用できないのに体し、BMessageは任意のスレッド同士が通信するのに利用できるという違いがあります。つまり、BeOSの方が柔軟に処理を行えるのです。BMessageを利用したスレッド間通信の応用については、次章以降のサンプルで実例を示していくことにします。


Art of BeOS Programming
koga@stprec.co.jp