名前
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は以下のフラグが指定できます。
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が設定されます。