Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
付録G 旧互換機能 | > G.4 動的スケルトンインタフェースのプログラミング | > G.4.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()等)で領域を獲得します。
目次
索引
![]() ![]() |