Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第4章 アプリケーションの開発(C言語) | > 4.7 データ型に対するマッピング |
動的起動インタフェース(DII)を使用して動的にパラメタを作成する方法について説明します。
パラメタはCORBA_NVList_add_item()で設定します。
サーバアプリケーションにinパラメタを渡す場合、クライアントアプリケーションでパラメタ領域を獲得し、そのポインタをCORBA_NVList_add_item()の第4パラメタに指定します。
CORBA_NVList_add_item( arg_list, name, /* IDLで指定したパラメタの名前を設定します。 */ type, /* パラメタのTypeCodeを設定します。 */ ¶m, /* パラメタ領域のポインタを設定します */ sizeof( CORBA_long ), /* パラメタのサイズを設定します */ CORBA_ARG_IN, /* CORBA_ARG_INを設定します */ &env );
クライアントアプリケーションで獲得した領域は、使用しなくなった時点で解放します。
サーバアプリケーションの処理結果をoutパラメタで受け取る場合、クライアントアプリケーションで領域を獲得する必要はありません。CORBA_NVList_add_item()は以下のように指定します。
CORBA_NVList_add_item( arg_list, name, /* IDLで指定したパラメタの名前を設定します。 */ type, /* パラメタのTypeCodeを設定します。 */ NULL, /* NULLを設定します */ 0, /* 0を設定します */ CORBA_ARG_OUT, /* CORBA_ARG_OUTを設定します */ &env );
サーバアプリケーションから渡されたデータの領域は、CORBA_NVList_free()でNVListクラスの領域を廃棄する際に自動的に解放されます。このため、NVListクラスの領域を解放した後、サーバアプリケーションから渡されたoutパラメタ領域を参照することはできません。NVListオブジェクトの解放については“リクエストの削除”を参照してください。
サーバアプリケーションにinoutパラメタを渡す場合、クライアントアプリケーションでパラメタ領域を獲得し、そのポインタをCORBA_NVList_add_item()の第4パラメタに指定します。
CORBA_NVList_add_item( arg_list, name, /* IDLで指定したパラメタの名前を設定します。 */ type, /* パラメタのTypeCodeを設定します。 */ ¶m, /* パラメタ領域のポインタを設定します */ sizeof( CORBA_long ), /* パラメタのサイズを設定します */ CORBA_ARG_INOUT, /* CORBA_ARG_INOUTを設定します */ &env );
クライアントアプリケーションで獲得したパラメタ領域は、リクエスト発行後、使用しなくなった時点で解放してください。
サーバアプリケーションから渡されたデータ領域は、CORBA_NVList_free()でNVListクラスの領域を廃棄する際に自動的に解放されます。このため、NVListクラスの領域を解放した後、サーバアプリケーションから渡されたinoutパラメタ領域を参照することはできません。NVListオブジェクトの解放については“リクエストの削除”を参照してください。
サーバアプリケーションの処理結果を復帰パラメタで受け取る場合、クライアントアプリケーションで領域を獲得する必要はありません。
サーバアプリケーションから渡されたデータ領域は、CORBA_Request_delete()でリクエストオブジェクトを削除する際に、自動的に解放されます。
目次
索引
![]() ![]() |