Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
|
目次
索引

|
5.1.2.5 パラメタの組立て
(1)パラメタリストの生成
CORBA::ORB::create_list()により、サーバアプリケーションに渡すパラメタを格納するための領域を保持するリストオブジェクト(NVListオブジェクト)を生成します。このとき、何個のパラメタを格納するかを指定します。結果として、リストオブジェクトのオブジェクトリファレンスが返されます。NVListオブジェクトの詳細については、“NVListオブジェクト”を参照してください。
CORBA::Any tmp_any = *description->value; // Contained_Description構造体から
// パラメタ情報構造体の抽出
CORBA::OperationDescription *opr_description =
(CORBA::OperationDescription *)tmp_any.value();
// パラメタ情報の抽出
CORBA::ParDescriptionSeq *params = &opr_description->parameters;
CORBA::NVList *arg_list; // NVList
orb->create_list( params->length(), arg_list, env ); // リストオブジェクトの生成
(2)パラメタリストの設定
CORBA::NVList::add_value()により、サーバアプリケーションに渡すパラメタをリストオブジェクトに設定します。パラメタとして、CORBA::NVListオブジェクトリファレンス、サーバアプリケーションのパラメタの名前、型、値および長さを設定します。
CORBA::Any p1, p2;
CORBA::Long x = 10, y = 20;
p1 <<= x;
p2 <<= y;
// パラメタの設定
arg_list->add_value(
((*params)[0])->name, // パラメタ名
p1, // パラメタの型および値
CORBA::ARG_IN, // パラメタのタイプ(in,out, inout)
env );
// パラメタの設定
arg_list->add_value(
((*params)[1])->name, // パラメタ名
p2, // パラメタの型および値
CORBA::ARG_IN, // パラメタのタイプ(in,out, inout)
env );
Copyright 2006 FUJITSU LIMITED