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

第3章 アプリケーションの開発(C言語)> 3.2 クライアントアプリケーションのプログラミング(動的起動インタフェース)

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