アプリケーションからイベントチャネルに接続しているコンシューマおよびサプライヤの情報を取得できます。
取得可能な接続情報を以下に示します。
イベントチャネルに接続しているコンシューマ/サプライヤのオブジェクトリファレンス
イベントチャネルに接続された時間
イベントチャネルに接続しているコンシューマ/サプライヤのIPアドレス
イベントチャネルに接続しているコンシューマ/サプライヤのプロキシ種別
イベントチャネルに接続しているコンシューマ数
イベントチャネルに接続しているサプライヤ数
イベントチャネルにキューイングされているイベントデータ数
接続情報を取得するアプリケーション作成例と処理の流れを以下に説明します。
イベントサービスの場合
[イベントチャネルに接続しているアプリケーションの接続情報の取得(C言語の場合)]
CORBA_Boolean func() { CosEventChannelAdmin_EventChannel channel; ES_ChannelUtil util; CORBA_Environment env; CORBA_unsigned_long consumer; CORBA_unsigned_long supplier; channel = イベントチャネルのオブジェクトリファレンスの獲得 /* 1 */ util = CosEventChannelAdmin_EventChannel_create_util( channel, CosEventChannelAdmin_EventChannel_CHANNEL_UTIL, &env); /* 2 */ pProxyDataSeq = ES_ChannelUtil_get_proxys( util, ES_ChannelUtil_ALL_PROXYS, &env); /* 3 */ consumer = ES_ChannelUtil_get_consumer_count( util, &env ); /* 4 */ supplier = ES_ChannelUtil_get_supplier_count( util, &env ); /* 5 */ queue = ES_ChannelUtil_get_queue_length( util, &env ); /* 6 */ ... }
イベントチャネルのオブジェクトリファレンスを獲得します。イベントチャネルのオブジェクトリファレンスの獲得方法については、“5.5 イベントチャネルのオブジェクトリファレンスの獲得”を参照してください。
CosEventChannelAdmin_EventChannel_create_util()メソッドで、イベントチャネルからESインタフェースのオブジェクトリファレンスを作成します
ES_ChannelUtil_get_proxys()メソッドで、イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を取得します。
ES_ChannelUtil_get_consumer_count()メソッドで、イベントチャネルに接続しているコンシューマ数を取得します。
ES_ChannelUtil_get_supplier_count()メソッドで、イベントチャネルに接続しているサプライヤ数を取得します。
ES_ChannelUtil_get_queue_length()メソッドで、イベントチャネルにキューイングされているイベントデータ数を取得します。
[イベントチャネルに接続しているアプリケーションの接続情報の取得(C++の場合)]
CosEventChannelAdmin::EventChannel_ptr channel; CORBA::Object_ptr util; ES::ChannelUtil_ptr Esutil; ES::ChannelUtil::ProxyDataSeq *pPxyData; CORBA::ULong consumer; CORBA::ULong supplier; CORBA::ULong queue; CosEventChannelAdmin::EventChannel::UtilType type; ES::ChannelUtil::ProxyKind proxy_kind; ... channel = イベントチャネルのオブジェクトリファレンスの獲得 /* 1 */ /*----- get ES_ChannelUtil interface object ----*/ type = CosEventChannelAdmin::EventChannel::CHANNEL_UTIL; util = channel->create_util(type,env); /* 2 */ Esutil = ES::ChannelUtil::_narrow( util ); /*----- get channel connection information -----*/ proxy_kind = ES::ChannelUtil::ALL_PROXYS; pPxyData = Esutil->get_proxys(proxy_kind, env ); /* 3 */ /* ---- get consumer count ---- */ consumer = Esutil->get_consumer_count( env ); /* 4 */ /* ---- get supplier count ---- */ supplier = Esutil->get_supplier_count( env ); /* 5 */ /* ---- get queue length ---- */ queue = Esutil->get_queue_length( env ); /* 6 */
イベントチャネルのオブジェクトリファレンスを獲得します。イベントチャネルのオブジェクトリファレンスの獲得方法については、“6.5 イベントチャネルのオブジェクトリファレンスの獲得”を参照してください。
CosEventChannelAdmin::EventChannel::create_util()メソッドで、イベントチャネルからESインタフェースのオブジェクトリファレンスを作成します
ES::ChannelUtil::get_proxys()メソッドで、イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を取得します。
ES::ChannelUtil::get_consumer_count()メソッドで、イベントチャネルに接続しているコンシューマ数を取得します。
ES::ChannelUtil::get_supplier_count()メソッドで、イベントチャネルに接続しているサプライヤ数を取得します。
ES::ChannelUtil::get_queue_length()メソッドで、イベントチャネルにキューイングされているイベントデータ数を取得します。
ノーティフィケーションサービスの場合
[イベントチャネルに接続しているアプリケーションの接続情報の取得(C言語の場合)]
CORBA_Boolean func() { CosEventChannelAdmin_EventChannel channel; ES_ChannelUtil util; CORBA_Environment env; CORBA_unsigned_long consumer; CORBA_unsigned_long supplier; channel = イベントチャネルのオブジェクトリファレンスの獲得 /* 1 */ util = CosNotifyChannelAdmin_EventChannel_create_util( channel, CosNotifyChannelAdmin_EventChannel_CHANNEL_UTIL, &env); /* 2 */ pProxyDataSeq = ES_ChannelUtil_get_proxys( util, ES_ChannelUtil_ALL_PROXYS, &env); /* 3 */ consumer = ES_ChannelUtil_get_consumer_count( util, &env ); /* 4 */ supplier = ES_ChannelUtil_get_supplier_count( util, &env ); /* 5 */ queue = ES_ChannelUtil_get_queue_length( util, &env ); /* 6 */ ... }
イベントチャネルのオブジェクトリファレンスを獲得します。イベントチャネルのオブジェクトリファレンスの獲得方法については、“5.5 イベントチャネルのオブジェクトリファレンスの獲得”を参照してください。
CosNotifyChannelAdmin_EventChannel_create_util()メソッドで、イベントチャネルからESインタフェースのオブジェクトリファレンスを作成します。
ES_ChannelUtil_get_proxys()メソッドで、イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を取得します。
ES_ChannelUtil_get_consumer_count()メソッドで、イベントチャネルに接続しているコンシューマ数を取得します。
ES_ChannelUtil_get_supplier_count()メソッドで、イベントチャネルに接続しているサプライヤ数を取得します。
ES_ChannelUtil_get_queue_length()メソッドで、イベントチャネルにキューイングされているイベントデータ数を取得します。
[イベントチャネルに接続しているアプリケーションの接続情報の取得(C++の場合)]
CosNotifyChannelAdmin::EventChannel_ptr channel; CORBA::Object_ptr util; ES::ChannelUtil_ptr Esutil; ES::ChannelUtil::ProxyDataSeq *pPxyData; CORBA::ULong consumer; CORBA::ULong supplier; CORBA::ULong queue; CosNotifyChannelAdmin::EventChannel::UtilType type; ES::ChannelUtil::ProxyKind proxy_kind; ... channel = イベントチャネルのオブジェクトリファレンスの獲得 /* 1 */ /*----- get ES_ChannelUtil interface object ----*/ type = CosNotifyChannelAdmin::EventChannel::CHANNEL_UTIL; util = channel->create_util(type,env); /* 2 */ Esutil = ES::ChannelUtil::_narrow( util ); /*----- get channel connection information -----*/ proxy_kind = ES::ChannelUtil::ALL_PROXYS; pPxyData = Esutil->get_proxys(proxy_kind, env ); /* 3 */ /* ---- get consumer count ---- */ consumer = Esutil->get_consumer_count( env ); /* 4 */ /* ---- get supplier count ---- */ supplier = Esutil->get_supplier_count( env ); /* 5 */ /* ---- get queue length ---- */ queue = Esutil->get_queue_length( env ); /* 6 */
イベントチャネルのオブジェクトリファレンスを獲得します。イベントチャネルのオブジェクトリファレンスの獲得方法については、“6.5 イベントチャネルのオブジェクトリファレンスの獲得”を参照してください。
CosNotifyChannelAdmin::EventChannel::create_util()メソッドで、イベントチャネルからESインタフェースのオブジェクトリファレンスを作成します
ES::ChannelUtil::get_proxys()メソッドで、イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を取得します。
ES::ChannelUtil::get_consumer_count()メソッドで、イベントチャネルに接続しているコンシューマ数を取得します。
ES::ChannelUtil::get_supplier_count()メソッドで、イベントチャネルに接続しているサプライヤ数を取得します。
ES::ChannelUtil::get_queue_length()メソッドで、イベントチャネルにキューイングされているイベントデータ数を取得します。