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

|
3.2.4 パラメタの組立て
(1)パラメタリストの生成
CORBA_ORB_create_list()により、サーバアプリケーションに渡すパラメタを格納するための領域を保持するリストオブジェクト(NVListオブジェクト)を生成します。このとき、何個のパラメタを格納するかを指定します。結果として、リストオブジェクトのオブジェクトリファレンスが返されます。NVListオブジェクトインタフェースの詳細については、“NVListオブジェクト”を参照してください。
CORBA_OperationDescription *opr_description; /* パラメタ情報の構造体 */
CORBA_any *tmp_any; /* ワーク用 */
CORBA_ParDescriptionSeq *params; /* パラメタ情報 */
CORBA_NVList arg_list; /* リストオブジェクト */
/* Contained_Description構造体から構造体の抽出 */
tmp_any = &description->value;
opr_description = (CORBA_OperationDescription *)tmp_any->_value;
/* パラメタ情報の抽出 */
params = &opr_description->parameters;
/* リストオブジェクトの生成 */
CORBA_ORB_create_list( orb,
params->_length,
&arg_list,
&env );
(2)パラメタリストの設定
CORBA_NVList_add_item()により、サーバアプリケーションに渡すパラメタをリストオブジェクトに設定します。パラメタとして、CORBA_NVListオブジェクトリファレンス、サーバアプリケーションのパラメタの名前、型、値および長さを設定します。
CORBA_long a,b;
/* パラメタの設定 */
CORBA_NVList_add_item(
arg_list, /* リストオブジェクト */
params->_buffer[0].name, /* パラメタ名 */
TC_long, /* パラメタの型 */
&a, /* パラメタの値 */
sizeof( CORBA_long ), /* パラメタの長さ */
CORBA_ARG_IN, /* パラメタのタイプ(in,out, inout) */
&env);
CORBA_NVList_add_item(
arg_list, /* リストオブジェクト */
params->_buffer[1].name, /* パラメタ名 */
TC_long, /* パラメタの型 */
&b, /* パラメタの値 */
sizeof( CORBA_long ), /* パラメタの長さ */
CORBA_ARG_IN, /* パラメタのタイプ(in,out, inout) */
&env);
Copyright 2005 FUJITSU LIMITED