ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)

4.3.4 CORBA-OBJECT-CREATE-REQUEST

名前

  CORBA-OBJECT-CREATE-REQUEST

形式

 ENVIRONMENT DIVISION.
   CONFIGURATION SECTION.
   SPECIAL-NAMES.
     SYMBOLIC CONSTANT
     COPY SYMBOL-CONST IN CORBA.
     .
 DATA DIVISION.
  WORKING-STORAGE SECTION.
    COPY CONST IN CORBA.
    01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ.
    01 COPY CONTEXT IN CORBA REPLACING CORBA-CONTEXT BY CTX.
    01 OPERATION USAGE POINTER.
    01 COPY NVLIST IN CORBA REPLACING CORBA-NVLIST BY ARG-LIST.
    01 COPY NAMEDVALUE IN CORBA REPLACING CORBA-NAMEDVALUE BY RESULT.
    01 COPY REQUEST IN CORBA REPLACING  CORBA-REQUEST BY REQUEST.
    01 COPY FLAGS IN CORBA REPLACING CORBA-FLAGS BY REQ-FLAGS.
    01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV.
    01 COPY STATUS IN CORBA REPLACING CORBA-STATUS BY ORB-STATUS.

PROCEDURE DIVISION.
   CALL "CORBA-OBJECT-CREATE-REQUEST" USING
        OBJ
        CTX
        OPERATION
        ARG-LIST
        RESULT
        REQUEST
        REQ-FLAGS
        ENV
        ORB-STATUS.

    CORBA-NAMEDVALUE.
    07  NAME  USAGE POINTER.
    07  ARGUMENT.
    09  ANY-TYPE  USAGE POINTER.
    09  ANY-VALUE USAGE POINTER.
    07  LEN PIC S9(9) COMP-5.
    07  ARG-MODES PIC 9(9) COMP-5.
       88  CORBA-ARG-IN                 VALUE   0.
       88  CORBA-ARG-OUT                VALUE   1.
       88  CORBA-ARG-INOUT              VALUE   2.
       88  CORBA-OUT-LIST-MEMORY        VALUE   3.
       88  CORBA-IN-COPY-VALUE          VALUE   4.
       88  CORBA-INV-NO-RESPONSE        VALUE   5.
       88  CORBA-INV-TERM-ON-ERR        VALUE   6.
       88  CORBA-RESP-NO-WAIT           VALUE   7.
       88  CORBA-DEPENDENT-LIST         VALUE   8.
       88  CORBA-CTX-RESTRICT-SCOPE     VALUE   9.
       88  CORBA-CTX-DELETE-DESCENDENTS VALUE   10.

機能説明

  リクエストオブジェクトのオブジェクトリファレンスを生成します。CORBAクライアントは、RequestインタフェースのCORBA-REQUEST-INVOKE関数やCORBA-REQUEST-SEND関数の呼び出し時に、このオブジェクトリファレンスを指定する必要があります。
  CTXには、CORBA-CONTEXT-CREATE-CHILD関数で返されるContextオブジェクトまたはCORBA-OBJECT-NIL、OPERATIONにはCORBA-STRING-SET関数でオペレーション名を指定します。ARG-LISTにはCORBA-ORB-CREATE-LIST関数またはCORBA-ORB-CREATE-OPERATION-LIST関数で返されるリストオブジェクトを指定します。パラメタがない場合は、TC-NULLを指定します。
  RESULTにはCORBA-NVLIST-ADD-ITEM関数で返されるNAMEDVALUEオブジェクトを指定します。復帰値がない場合は、TC-NULLを指定します。RESULTで指定するNAMEDV ALUEオブジェクト内のANY型変数のTypeCodeには、CORBA-REQUEST-INVOKE関数, CORBA-REQUEST-SEND関数で呼び出すメソッドの復帰値のTypeCodeを設定する必要があります。
  REQ-FLAGは以下のフラグが指定できます。

  CORBA-OUT-LIST-MEMORY

  ARG-LISTで指定したリストオブジェクト(NVList)がリクエストオブジェクトに結び付けられます。この場合、ARG-LISTを指定しなければなりません。CORBA-REQUEST-DELETE関数でリクエストを破壊すると自動的にリストオブジェクトも破壊されます。
  CORBA-OUT-LIST-MEMORYが指定されなければ、リストオブジェクトはプログラムが解放するまで利用可能です。解放には、CORBA-FREE関数を使用します。

復帰値

  正常終了した場合は、CORBA-OKが返され、REQEUESTにリクエストオブジェクトのオブジェクトリファレンスが設定されます。
  異常終了した場合は、CORBA-FAILED が返されます。
  OBJにNULLが指定された場合、ENV構造体のMAJORにはCORBA-USER-EXCEPTIONが設定されます。