ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)
Interstage

8.4.5 パラメタの組立て

(1)パラメタリストの生成

org.omg.CORBA.ORB.create_list()メソッドにより、サーバアプリケーションに渡すパラメタを格納するための領域を保持するリストオブジェクトを生成します。このとき、何個のパラメタを格納するかを指定します。結果として、NVListオブジェクトリファレンスが通知されます。NVListオブジェクトインタフェースの詳細については、“12.2 NVListオブジェクト”を参照してください。

org.omg.CORBA.NVList Nvl;  //NVList
//org.omg.CORBA.ContainedPackage.Description構造体からパラメタ情報構造体の抽出
org.omg.CORBA.Any opeany = desc.value; 
org.omg.CORBA.OperationDescription c
                  = org.omg.OperationDescriptionHelper.extract( opeany ); 
org.omg.CORBA.ParameterDescription[] paraseq = c.parameters; 
//パラメタ情報の抽出
int ParamCount = paraseq.length; 
//リストオブジェクトの生成
Nvl = Orb.create_list( ParamCount );

(2)パラメタリストの設定

org.omg.CORBA.NVList.add_value()メソッドにより、サーバアプリケーションに渡すパラメタをリストオブジェクトに設定します。パラメタとして、サーバアプリケーションのパラメタの名前、値(Any型)、およびパラメタの形式を設定します。

org.omg.CORBA.NamedValue tmpNam; 
org.omg.CORBA.Any  Anya = Orb.create_any();
Anya.insert_long(a); 
tmpNam = Nvl.add_value( paraseq[0].name, Anya, org.omg.CORBA.ARG_IN.value ); 
org.omg.CORBA.Any  Anyb = Orb.create_any();
Anyb.insert_long(b); 
tmpNam = 
    Nvl.value.add_value( paraseq[1].name, Anyb, org.omg.CORBA.ARG_IN.value );