4.4.4. イベントサービス |
リクエストの発行と応答を非同期に行うサービスです。リクエストを一時的に貯え、仲介するイベントチャネルと呼ばれる仕組みによって、クライアント/サーバは互いに相手が起動しているかどうかや、すぐに利用可能であるかなどを気にする必要がなくなります。 イベントサービスの詳しい使い方は [ アプリケーション開発ガイド(CORBA) > 1. CORBA アプリケーション > 1.2. プログラミング・開発ガイド > 1.2.2. Object Broker > 1.2.2.6. Object Broker C++の機能 > イベントサービスの利用方法] を参照してください。
4.4.4.1. CosEventComm::PushConsumerクラス |
プッシュモデルの消費者(イベントチャネルによってpushオペレーションが呼び出された結果、イベントを受信するサーバ)を利用するためのクラスです。プッシュモデルの消費者として実装されるサーバでは、下記のメンバの処理部およびコンストラクタ/デストラクタを記述する必要があります。
CosEventChannelAdmin::ProxyPushConsumer(プロクシプッシュ消費者)は下記のインタフェースを継承します。プッシュモデルの生産者(pushオペレーションによりイベントをイベントチャネルに送信するクライアント)は、プロクシプッシュ消費者オブジェクトを介してイベントチャネルにイベントの送信や接続断の通知を行います。
push | イベントを送信する |
disconnect_push_consumer | 接続断を通知する |
4.4.4.2. CosEventComm::PushSupplierクラス |
プッシュモデルの生産者(pushオペレーションによりイベントをイベントチャネルに送信するクライアント)を利用するためのクラスです。プッシュモデルの生産者として実装されるクライアントでは、下記のメンバ処理部およびコンストラクタ/デストラクタを記述する必要があります。
CosEventChannelAdmin::ProxyPushSupplier(プロクシプッシュ生産者)は下記のインタフェースを継承します。プッシュモデルの消費者(イベントチャネルによってpushオペレーションが呼び出された結果、イベントを受信するサーバ)はプロクシプッシュ生産者オブジェクトのdisconnect_push_supplierを呼ぶことで、サーバ側から接続断を通知できます。
disconnect_push_supplier | 接続断を通知する |
4.4.4.3. CosEventComm::PullConsumerクラス |
プルモデルの消費者(pullまたはtry_pullオペレーションによりイベントをイベントチャネルから取得するクライアント)を利用するためのクラスです。プルモデルの消費者として実装されるクライアントでは、下記のメソッド処理部およびコンストラクタ/デストラクタを記述する必要があります。
CosEventChannelAdmin::ProxyPullConsumer(プロクシプル消費者)は下記のインタフェースを継承します。プルモデルの生産者(イベントチャネルによってpullまたはtry_pullオペレーションが呼び出された結果、イベントを送信するサーバ)はプロクシプル消費者オブジェクトのdisconnect_pull_consumerを呼ぶことで、サーバ側から接続断を通知できます。
disconnect_pull_consumer | 接続断を通知する |
4.4.4.4. CosEventComm::PullSupplierクラス |
プルモデルの生産者(イベントチャネルによってpullまたはtry_pullオペレーションが呼び出された結果、イベントを送信するサーバ)を利用するためのクラスです。プルモデルの生産者として実装されるサーバでは、pullまたはtry_pullで返すイベントを生産して返すなどの処理部およびコンストラクタ/デストラクタを記述する必要があります。
CosEventChannelAdmin::ProxyPullSupplier(プロクシプル生産者)は下記のインタフェースを継承します。プルモデルの消費者(pullまたはtry_pullオペレーションによりイベントをイベントチャネルから取得するクライアント)は、プロクシプル生産者オブジェクトのpullまたはtry_pullメソッドを介してイベントチャネルからのイベント取得や接続断の通知を行います。
pull | イベントを取得する |
try_pull | イベント取得を試みる |
disconnect_pull_supplier | 接続断を通知する |
4.4.4.5. CosEventChannelAdmin::ProxyPushConsumerクラス |
プロクシプッシュ消費者クラスです。プッシュモデルの生産者はCosEventComm::PushConsumerのインタフェースを継承したメンバとあわせて、接続/接続断およびイベントの送信を行うことができます。
connect_push_supplier | 接続する |
このほかCosEventComm::PushConsumerの各メンバが使えます。
4.4.4.6. CosEventChannelAdmin::ProxyPushSupplierクラス |
プロクシプッシュ生産者クラスです。プッシュモデルの消費者はCosEventComm::PushSupplierのインタフェースを継承したメンバとあわせて、接続/接続断を行うことができます。
connect_push_consumer | 接続する |
このほかCosEventComm::PushSupplierの各メンバが使えます。
4.4.4.7. CosEventChannelAdmin::ProxyPullConsumerクラス |
プロクシプル消費者クラスです。プルモデルの生産者はCosEventComm::PullConsumerのインタフェースを継承したメンバとあわせて、接続/接続断を行うことができます。
connect_pull_supplier | 接続する |
このほかCosEventComm::PullConsumerの各メンバが使えます。
4.4.4.8. CosEventChannelAdmin::ProxyPullSupplierクラス |
プロクシプル生産者クラスです。プルモデルの消費者はCosEventComm::PullSupplierのインタフェースを継承したメンバとあわせて、接続/接続断およびイベントの取得を行うことができます。
connect_pull_consumer | 接続する |
このほかCosEventComm::PullSupplierの各メンバが使えます。
4.4.4.9. CosEventChannelAdmin::ConsumerAdminクラス |
生産者管理クラスです。プロクシプッシュ(またはプル)生産者オブジェクトを取得することができます。
obtain_push_supplier | プロクシプッシュ生産者オブジェクトを取得する |
obtain_pull_supplier | プロクシプル生産者オブジェクトを取得する |
4.4.4.10. CosEventChannelAdmin::SupplierAdminクラス |
消費者管理クラスです。プロクシプッシュ(またはプル)消費者オブジェクトを取得することができます。
obtain_push_consumer | プロクシプッシュ消費者オブジェクトを取得する |
obtain_pull_consumer | プロクシプル消費者オブジェクトを取得する |
4.4.4.11. CosEventChannelAdmin::EventChannelクラス |
生産者/消費者の管理オブジェクトの取得とイベントチャネルオブジェクト(このクラスのオブジェクト)の破棄を行うクラスです。 イベントチャネルオブジェクトは [ アプリケーション開発ガイド(CORBA) > 1. CORBA アプリケーション > 1.2. プログラミング・開発ガイド > 1.2.2. Object Broker > 1.2.2.6. Object Broker C++の機能 > イベントチャネルサーバの使い方] のオブジェクト生成を参考に生成する必要があります。 互いにイベントをやり取りしたいサーバ/クライアントは同一のイベントチャネルオブジェクトに対して、管理オブジェクトの取得を行います。
for_consumers | 消費者管理オブジェクトを取得する |
for_suppliers | 生産者管理オブジェクトを取得する |
destroy | イベントチャネルを破棄する |
CosEventComm::PushConsumer::push - イベントを送信する
#include <orb.h> void CosEventComm::PushConsumer::push( const CORBA::Any& data, CORBA::Environment& env = Ob_default_environment() ) const;
イベントを送信します。送信するイベント(data)はCORBA::Any型の任意のデータです。pushは生産したイベントを消費者に送るために、プッシュ生産者が呼び出します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
接続していないときおよび既に切断されているときには、ユーザ例外CosEventComm::Disconnectedがthrowされます。
これ以外にenvにCORBA標準例外が返ります。
CosEventChannelAdmin::SupplierAdmin::obtain_push_consumer
CosEventComm::PushConsumer::disconnect_push_consumer - 接続断を通知する
#include <orb.h> void CosEventComm::PushConsumer::disconnect_push_consumer( CORBA::Environment& env = Ob_default_environment() );
プッシュ消費者との接続を切るときに呼び出します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::SupplierAdmin::obtain_push_consumer
CosEventComm::PushSupplier::disconnect_push_supplier - 接続断を通知する
#include <orb.h> void CosEventComm::PushSupplier::disconnect_push_supplier( CORBA::Environment& env = Ob_default_environment() );
プッシュ生産者との接続を切るときに呼び出します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::ConsumerAdmin::obtain_push_supplier
CosEventComm::PullConsumer::disconnect_pull_consumer - 接続断を通知する
#include <orb.h> void CosEventComm::PullConsumer::disconnect_pull_consumer( CORBA::Environment& env = Ob_default_environment() );
プル消費者との接続を切るときに呼び出します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::SupplierAdmin::obtain_pull_consumer
CosEventComm::PullSupplier::pull - イベントを取得する
#include <orb.h> CORBA::Any* CosEventComm::PullSupplier::pull( CORBA::Environment& env = Ob_default_environment() );
プル生産者からイベントを取得します。pullはプル消費者が呼び出します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
イベントがCORBA::Any*で返ります。
接続していないときおよび既に切断されているときには、ユーザ例外CosEventComm::Disconnectedがthrowされます。
envにCORBA標準例外が返ります。
CosEventChannelAdmin::ConsumerAdmin::obtain_pull_supplier
CosEventComm::PullSupplier::try_pull - イベント取得を試みる
#include <orb.h> CORBA::Any* CosEventComm::PullSupplier::try_pull( CORBA::Boolean& has_event, CORBA::Environment& env = Ob_default_environment() );
プル生産者からイベントを取得します。try_pullはプル消費者が呼び出します。pullとtry_pullの違いはイベントがないときに呼び出しが完了するかどうかです。pullでは呼び出しが完了せずプル生産者内でイベントの発生を待ちます。try_pullでは待たずに呼び出しが完了します。このときhas_eventは0となります。プル生産者からイベントを即時に取得できる状況ではpullとtry_pullの動作の違いはありません。イベントを取得できるとき、has_eventは1となります。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
イベントがCORBA::Any*で返ります。
接続していないときおよび既に切断されているときには、ユーザ例外CosEventComm::Disconnectedがthrowされます。
envにCORBA標準例外が返ります。
CosEventChannelAdmin::ConsumerAdmin::obtain_pull_supplier
CosEventComm::PullSupplier::disconnect_pull_supplier - 接続断を通知する
#include <orb.h> void CosEventComm::PullSupplier::disconnect_pull_supplier( CORBA::Environment& env = Ob_default_environment() );
プル生産者との接続を切るときに呼び出します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::ConsumerAdmin::obtain_pull_supplier
CosEventChannelAdmin::ProxyPushConsumer::connect_push_supplier - 接続する
#include <orb.h> void CosEventChannelAdmin::ProxyPushConsumer::connect_push_supplier( CosEventComm::PushSupplier_ptr push_supplier, CORBA::Environment& env = Ob_default_environment() );
プロクシプッシュ消費者に対して接続します。connect_push_supplierはプッシュ生産者が呼び出します。プッシュ生産者自身を表わすpush_supplierを引数として渡しておくとプロクシプッシュ消費者に異常があった場合に渡したオブジェクトに対してdisconnect_push_supplierが呼び出されることがあります。ただし、必ず呼ばれるとは限りません。この通知を望まない場合はpush_supplier引数にnilオブジェクトを渡すこともできます。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
既に接続しているときには、ユーザ例外CosEventChannelAdmin::AlreadyConnectedがthrowされます。
envにCORBA標準例外が返ります。
CosEventChannelAdmin::SupplierAdmin::obtain_push_consumer
CosEventChannelAdmin::ProxyPushSupplier::connect_push_consumer - 接続する
#include <orb.h> void CosEventChannelAdmin::ProxyPushSupplier::connect_push_consumer( CosEventComm::PushConsumer_ptr push_consumer, CORBA::Environment& env = Ob_default_environment() );
プロクシプッシュ生産者に対して接続します。connect_push_consumerはプッシュ消費者が呼び出します。プッシュ消費者自身を表わすpush_consumerを引数として渡す必要があります。プロクシプッシュ生産者は渡したオブジェクトに対してpushを呼び出してイベント送信を行います。プロクシプッシュ生産者に異常があった場合、disconnect_push_consumerが呼び出されることがあります。ただし、必ず呼ばれるとは限りません。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
既に接続しているときには、ユーザ例外CosEventChannelAdmin::AlreadyConnectedがthrowされます。
それ以外の場合は、CORBA標準例外がthrowされます。
CosEventChannelAdmin::ConsumerAdmin::obtain_push_supplier
connect_push_consumerではpush_consumer引数にnilオブジェクトを渡すことはできません。
CosEventChannelAdmin::ProxyPullConsumer::connect_pull_supplier - 接続する
#include <orb.h> void CosEventChannelAdmin::ProxyPullConsumer::connect_pull_supplier( CosEventComm::PullSupplier_ptr pull_supplier, CORBA::Environment& env = Ob_default_environment() );
プロクシプル消費者に対して接続します。connect_pull_supplierはプル生産者が呼び出します。プル消費者自身を表わすpull_supplierを引数として渡す必要があります。プロクシプル消費者は渡したオブジェクトに対してpullあるいはtry_pullを呼び出してイベント取得を行います。プロクシプル消費者に異常があった場合、disconnect_pull_supplierが呼び出されることがあります。ただし、必ず呼ばれるとは限りません。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
既に接続しているときには、ユーザ例外CosEventChannelAdmin::AlreadyConnectedがthrowされます。
それ以外の場合は、CORBA標準例外がthrowされます。
CosEventChannelAdmin::SupplierAdmin::obtain_pull_consumer
connect_pull_supplierではpull_supplier引数にnilオブジェクトを渡すことはできません。
CosEventChannelAdmin::ProxyPullSupplier::connect_pull_consumer - 接続する
#include <orb.h> void CosEventChannelAdmin::ProxyPullSupplier::connect_pull_consumer( CosEventComm::PullConsumer_ptr pull_consumer, CORBA::Environment& env = Ob_default_environment() );
プロクシプル生産者に対して接続します。connect_pull_consumerはプル消費者が呼び出します。プル消費者自身を表わすpull_consumerを引数として渡しておくとプロクシプル生産者に異常があった場合に渡したオブジェクトに対してdisconnect_pull_consumerが呼び出されることがあります。ただし、必ず呼ばれるとは限りません。この通知を望まない場合はpull_consumer引数にnilオブジェクトを渡すこともできます。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
既に接続しているときには、ユーザ例外CosEventChannelAdmin::AlreadyConnectedがthrowされます。
それ以外の場合は、CORBA標準例外がthrowされます。
CosEventChannelAdmin::ConsumerAdmin::obtain_pull_supplier
CosEventChannelAdmin::ConsumerAdmin::obtain_push_supplier
- プロクシプッシュ生産者オブジェクトを取得する
#include <orb.h> CosEventChannelAdmin::ProxyPushSupplier_ptr CosEventChannelAdmin::ConsumerAdmin::obtain_push_supplier( CORBA::Environment& env = Ob_default_environment() );
プロクシプッシュ生産者オブジェクトを取得します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
プロクシプッシュ生産者オブジェクトが返ります。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::EventChannel::for_consumers,
CosEventChannelAdmin::ProxyPushSupplier::connect_push_consumer
CosEventChannelAdmin::ConsumerAdmin::obtain_pull_supplier
- プロクシプル生産者オブジェクトを取得する
#include <orb.h> CosEventChannelAdmin::ProxyPullSupplier_ptr CosEventChannelAdmin::ConsumerAdmin::obtain_pull_supplier( CORBA::Environment& env = Ob_default_environment() );
プロクシプル生産者オブジェクトを取得します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
プロクシプル生産者オブジェクトが返ります。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::EventChannel::for_consumers,
CosEventChannelAdmin::ProxyPullSupplier::connect_pull_consumer,
CosEventComm::PullSupplier::pull,
CosEventComm::PullSupplier::try_pull,
CosEventComm::PullSupplier::disconnect_pull_supplier
CosEventChannelAdmin::SupplierAdmin::obtain_push_consumer
- プロクシプッシュ消費者オブジェクトを取得する
#include <orb.h> CosEventChannelAdmin::ProxyPushConsumer_ptr CosEventChannelAdmin::SupplierAdmin::obtain_push_consumer( CORBA::Environment& env = Ob_default_environment() );
プロクシプッシュ消費者オブジェクトを取得します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
プロクシプッシュ消費者オブジェクトが返ります。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::EventChannel::for_suppliers,
CosEventChannelAdmin::ProxyPushConsumer::connect_push_supplier,
CosEventComm::PushConsumer::push,
CosEventComm::PushConsumer::disconnect_push_consumer
CosEventChannelAdmin::SupplierAdmin::obtain_pull_consumer
- プロクシプル消費者オブジェクトを取得する
#include <orb.h> CosEventChannelAdmin::ProxyPullConsumer_ptr CosEventChannelAdmin::SupplierAdmin::obtain_pull_consumer( CORBA::Environment& env = Ob_default_environment() );
プロクシプル消費者オブジェクトを取得します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
プロクシプル消費者オブジェクトが返ります。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::EventChannel::for_suppliers,
CosEventChannelAdmin::ProxyPullConsumer::connect_pull_supplier
CosEventChannelAdmin::EventChannel::for_consumers
- 消費者管理オブジェクトを取得する
#include <orb.h> CosEventChannelAdmin::ConsumerAdmin_ptr CosEventChannelAdmin::EventChannel::for_consumers( CORBA::Environment& env = Ob_default_environment() );
消費者管理オブジェクトを取得します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
消費者管理オブジェクトが返ります。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::ConsumerAdmin::obtain_push_supplier,
CosEventChannelAdmin::ConsumerAdmin::obtain_pull_supplier
CosEventChannelAdmin::EventChannel::for_suppliers
- 生産者管理オブジェクトを取得する
#include <orb.h> CosEventChannelAdmin::SupplierAdmin_ptr CosEventChannelAdmin::EventChannel::for_suppliers( CORBA::Environment& env = Ob_default_environment() );
生産者管理オブジェクトを取得します。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
生産者管理オブジェクトが返ります。
CORBA標準例外がthrowされます。
CosEventChannelAdmin::SupplierAdmin::obtain_pull_consumer,
CosEventChannelAdmin::SupplierAdmin::obtain_push_consumer
CosEventChannelAdmin::EventChannel::destroy - イベントチャネルを破棄する
#include <orb.h> void CosEventChannelAdmin::EventChannel::destroy( CORBA::Environment& env = Ob_default_environment() );
イベントチャネルを破棄します。destroyを呼び出すと以後このイベントチャネルに対してfor_suppliers、for_consumersを呼び出すことにより接続して、現在利用しているすべての生産者および消費者がイベントチャネルを利用できなくなります。
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
CORBA標準例外がthrowされます。