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

第6章 アプリケーションの開発(COBOL)> 6.2 クライアントアプリケーションのプログラミング(動的起動インタフェース)

6.2.5 リクエストの作成

 CORBA-OBJECT-CREATE-REQUESTメソッドにより、リクエストオブジェクトを作成します。リクエストオブジェクトに対して、サーバオブジェクトのオブジェクトリファレンス、NVListオブジェクトリファレンス、後述するNamedValueと呼ぶサーバの処理結果を格納する領域を指定します。この結果として、リクエストオブジェクトのオブジェクトリファレンスが返されます。

  MOVE FUNCTION ADDR(RESULT) TO PARAM-POINTER. 
  MOVE "calculate" TO STR-BUF. 
  MOVE FUNCTION LENG (STR-BUF) TO STRING-LENGTH. 
  CALL "CORBA-STRING-SET" USING
        STRING-POINTER 
        STRING-LENGTH 
        STR-BUF. 

  SET CORBA-OUT-LIST-MEMORY OF FLAG TO TRUE. 

  CALL "CORBA-OBJECT-CREATE-REQUEST" USING
        OBJ
        CTX
        STRING-POINTER
        ARG-LIST
        PARAM-POINTER
        REQ
        FLAG
        ENV
        RET-VAL.

 NamedValueは、サーバの処理結果を格納するための領域であり、以下のように定義されています。
 IDLファイルでの定義を以下に示します。

  module CORBA   {
        typedef string                  Identifier;
        enum Flags{
                ARG_IN,
                ARG_OUT,
                ARG_INOUT,
                OUT_LIST_MEMORY,
                IN_COPY_VALUE,
                INV_NO_RESPONSE,
                INV_TERM_ON_ERR,
                RESP_NO_WAIT,
                DEPENDENT_LIST,
                CTX_RESTRICT_SCOPE,
                CTX_DELETE_DESCENDENTS
        };
        struct NamedValue      {
          Identifier    name;       // パラメタの名前
          any           argument;   // パラメタの値
          long          len;        // パラメタの長さ
          Flags         arg_modes;  // パラメタの引き渡し方法(in,out,inout)
        };
  };

 COBOL登録集を以下に示します。

  * NamedValue構造体
       CORBA-NAMED-VALUE.  
  * パラメタの名前
       07  NAME     USAGE   POINTER. 
  * パラメタの値
       07  ARGUMENT. 
           09 ANY-TYPE      USAGE POINTER. 
           09 ANY-VALUE     USAGE POINTER. 
  * パラメタの長さ
       07  LEN      PIC     S9(9) COMP-5. 
  * パラメタの引き渡し方法(in,out,inout) 
       07  ARG-MODES        PIC     9(9) COMP-5. 
           88  CORBA-ARG-IN                 VALUE   1. 
           88  CORBA-ARG-OUT                VALUE   2. 
           88  CORBA-ARG-INOUT              VALUE   4. 
           88  CORBA-OUT-LIST-MEMORY        VALUE   8. 
           88  CORBA-IN-COPY-VALUE          VALUE   16. 
           88  CORBA-INV-NO-RESPONSE        VALUE   32. 
           88  CORBA-INV-TERM-ON-ERR        VALUE   64. 
           88  CORBA-RESP-NO-WAIT           VALUE   128. 
           88  CORBA-DEPENDENT-LIST         VALUE   256. 
           88  CORBA-CTX-RESTRICT-SCOPE     VALUE   512. 
           88  CORBA-CTX-DELETE-DESCENDENTS VALUE   1024.

目次 索引 前ページ次ページ

Copyright 2005 FUJITSU LIMITED