(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 );