Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第5章 アプリケーションの開発(C++言語) | > 5.1 クライアントアプリケーションのプログラミング | > 5.1.2 動的起動インタフェース |
サーバアプリケーションに対してリクエストを出します。リクエストの方法として、同期送信と非同期送信の2つの方法があります。
CORBA::Request::invoke()により、サーバアプリケーションを呼び出します。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。
request->invoke( env );
CORBA::Request::send_deferred()により、サーバアプリケーションを呼び出します。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。サーバアプリケーションの処理結果は、CORBA::Request::get_response()により受け取ります。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。
request->send_deferred( env ); // 処理の要求 request->get_response( env ); // 処理結果の受け取り
CORBA::Request::get_response()サーバアプリケーションからリクエストが完了していないことが判明した場合、再度CORBA::Request::get_response()を呼び出します。
処理結果を受け取った後、CORBA::NVList::item()により、サーバアプリケーションから受け取ったパラメタ情報を取り出します。パラメタ情報の取り出しの詳細については、“データ型に対するマッピング”の“動的インタフェースでのパラメタの獲得/解放”を参照してください。
CORBA::NamedValue_ptr nv; // 処理結果の取り出し nv = arg_list->item(1, env); // 1番目のパラメタの取り出し CORBA::Any *ap = nv->value( env ); CORBA::Long *p = (CORBA::Long *)ap->value(); cout << *(CORBA::Long *)p << endl; // 結果の出力
目次
索引
![]() ![]() |