| Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]()
|
| 付録F 動的スケルトンインタフェースのプログラミング | > F.1 C言語の開発 |
動的スケルトンインタフェースを使用して動的にパラメタを作成する方法について説明します。
パラメタはCORBA_NVList_add_item()で設定します。
クライアントアプリケーションからinパラメタを受け取る場合、パラメタ領域の獲得/解放を行う必要はありません。CORBA_NVList_add_item()は以下のように指定します。
CORBA_NVList_add_item(
arg_list,
name, /* IDLで指定したパラメタの名前を設定します。 */
type, /* パラメタのTypeCodeを設定します。 */
NULL, /* NULLを設定します */
0, /* 0を設定します */
CORBA_ARG_IN, /* CORBA_ARG_INを設定します */
&env );
サーバアプリケーションの処理結果をoutパラメタでクライアントアプリケーションに渡す場合、各データ領域獲得関数(CORBA_long_alloc()等)で領域を獲得し、そのポインタをCORBA_NVList_add_item()の第4パラメタに指定します。
CORBA_NVList_add_item(
arg_list,
name, /* IDLで指定したパラメタの名前を設定します。 */
type, /* パラメタのTypeCodeを設定します。 */
¶m, /* パラメタ領域へのポインタを設定します */
sizeof( CORBA_long ), /* パラメタのサイズを設定します */
CORBA_ARG_OUT, /* CORBA_ARG_OUTを設定します */
&env );
獲得した領域は、CORBAサービス内でリクエスト復帰後に解放されます。
クライアントアプリケーションからinoutパラメタを受け取る場合には、パラメタ領域の獲得/解放を行う必要はありません。CORBA_NVList_add_item()は以下のように指定します。
CORBA_NVList_add_item(
arg_list,
name, /* IDLで指定したパラメタの名前を設定します。 */
type, /* パラメタのTypeCodeを設定します。 */
NULL, /* NULLを設定します */
0, /* 0を設定します */
CORBA_ARG_INOUT, /* CORBA_ARG_INOUTを設定します */
&env );
サーバアプリケーションの処理結果をinoutパラメタでクライアントアプリケーションに渡す場合は、以下のようにします。
inoutパラメタの領域は、リクエスト復帰後にスケルトンで解放されます。
サーバアプリケーションの処理結果を復帰パラメタ渡す場合、データ域獲得関数(CORBA_long_alloc()等)で領域を獲得します。
目次
索引
![]()
|