StructuredEvent型では、メッセージ単位に詳細情報を設定します。メッセージ単位のTimeout時間などを設定することが可能です。
StructuredEvent型の構造を以下に示します。データの作成例については、“4.4 QoS機能運用時のアプリケーション開発”を参照してください。
StructuredEvent型のデータ構造を大別すると、“Event Header”、“Event Body”に分類できます。
■Event Header
Event Headerは、さらに“Fixed Header”、“Variable Header”に分類されます。
(1)Fixed Header
“Fixed Header”には、データ型の大分類を定義します。
“telecommunications”、“finance”、“healthcare”など産業分野を見分けるための文字列を指定します。設定が不要な場合は、空の文字列("")を指定します。
産業分野内で特定するための“CommunicationAlarm”、“StockQuote”、“VitalSigns”などユニークな文字列を指定します。設定が不要な場合は、空の文字列("")を指定します。
送信される特定のデータをユニークに見分けるための文字列を指定します。設定が不要な場合は、空の文字列("")を指定します。
(2)Variable Header
“Variable Header”には、メッセージ単位のQoS情報を設定します。メッセージ単位のQoS情報として設定可能な項目(PriorityおよびTimeout)の詳細については、“1.11.1 QoSプロパティ”を参照してください。
メッセージごとに設定するQoSプロパティ項目を、以下の2つのメンバで構成されるProperty構造体のシーケンス型で指定します。設定が不要な場合は、空のシーケンス型を指定します。
QoSプロパティ項目の項目名をstring型で設定します。
nameメンバに対するQoSプロパティ項目の値を設定します。
■Event Body
メッセージ本文を指定します。
(1)Filterable Body Fields
イベントデータの生成時に、以下の例を参考に指定してください。
例
[C言語の場合] CosNotification_StructuredEvent *data = CosNotification_StructuredEvent_alloc(); data->filterable_data._maximum = 0; data->filterable_data._length = 0; data->filterable_data._buffer = NULL;
[C++言語の場合] CosNotification::StructuredEvent *data = new CosNotification::StrucuturedEvent(); CosNotification::FilterableEventBody *filterable_data = new CosNotification::FilterableEventBody( 0, 0, NULL, CORBA_FALSE ); data->filterable_data = filterable data;
[Java言語の場合] Property[] filterable = new Property[0]; StructuredEvent data = new StructuredEvent( eventHeader, filterable, remainderBody );
(2)Remaining Body
メッセージ本文をany型のデータ構造で設定します。any型メッセージの設定方法については、“1.5.1 any型の設定方法”を参照してください。
ノーティフィケーションサービスでは、2組のデータ形式を扱うため、データ形式の相互変換機能をサポートしています。
サプライヤ | コンシューマ | 相互変換 |
---|---|---|
any | any | そのままの形式で通知されます。 |
StructuredEvent | “1.5.3 any型からStructuredEvent型への変換”を参照してください。 | |
StructuredEvent | any | “1.5.4 StructuredEvent型からany型への変換”を参照してください。 |
StructuredEvent | そのままの形式で通知されます。 |