Interstage Application Server アプリケーション作成ガイド (イベントサービス編) |
目次
索引
![]() ![]() |
第4章 アプリケーションの開発(各機能) | > 4.1 イベントチャネル接続のアプリケーション開発 |
アプリケーションから、イベントチャネルに接続しているコンシューマおよびサプライヤの情報を取得することができます。
取得できる接続情報を以下に示します。
接続情報を取得するアプリケーション作成例と処理の流れを以下に説明します。
[イベントチャネルに接続しているアプリケーションの接続情報の取得(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 */ ... }
[イベントチャネルに接続しているアプリケーションの接続情報の取得(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 */
[イベントチャネルに接続しているアプリケーションの接続情報の取得(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 */ ... }
[イベントチャネルに接続しているアプリケーションの接続情報の取得(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 */
目次
索引
![]() ![]() |