ここで説明する関数は、インタフェースリポジトリオブジェクトが他のインタフェースリポジトリオブジェクトを包含する関係を持ち得る各インタフェースリポジトリオブジェクト(このインタフェースリポジトリオブジェクトをContainerと呼ぶ)に継承されて、その継承先のインタフェースリポジトリオブジェクトの関数として使用されます。
名前
CORBA-CONTAINER-LOOKUP
形式
DATA DIVISION. WORKING-STORAGE SECTION. COPY CONST IN CORBA. 01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ. 01 SEARCH-NAME USAGE IS POINTER. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 COPY CONTAINED IN CORBA REPLACING CORBA-CONTAINED BY C-CONTAINED. PROCEDURE DIVISION. CALL "CORBA-CONTAINER-LOOKUP" USING OBJ SEARCH-NAME ENV C-CONTAINED.
機能説明
OBJで指定されたインタフェースリポジトリオブジェクトが包含するインタフェースオブジェクトの中から、指定された名前を持つオブジェクトを見つけだし、そのオブジェクトリファレンスを返します。SEARCH-NAMEには、検索する名前(SCOPEDNAME)を指定します。返却対象のオブジェクトが見つからない場合は、NIL(空の)オブジェクトリファレンスを返して正常終了します。
本関数はオブジェクトリファレンスを格納する領域を獲得するため、この領域が不要になった時点で、CORBA-OBJECT-RELEASE関数を使用して領域を解放する必要があります。
復帰値
正常終了した場合、指定された名前を持つオブジェクトのオブジェクトリファレンスが返されます。
異常終了した場合、NIL(空の)オブジェクトリファレンスが返されます。また、ENV構造体のMAJORにはCORBA-SYSTEM-EXCEPTIONが返され、IDとMINORに詳細情報が設定されます。IDとMINORの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
名前
CORBA-CONTAINER-CONTENTS
形式
DATA DIVISION. WORKING-STORAGE SECTION. COPY CONST IN CORBA. 01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ. 01 COPY DEFINITIONKIND IN CORBA REPLACING CORBA-DEFINITIONKIND BY LIMIT-TYPE. 01 COPY BOOLEAN IN CORBA REPLACING CORBA-BOOLEAN BY EXCLUDE-INHERITED. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 CONTAINEDSEQ-ADDR USAGE POINTER. PROCEDURE DIVISION. CALL "CORBA-CONTAINER-CONTENTS" USING OBJ LIMIT-TYPE EXCLUDE-INHERITED ENV CONTAINEDSEQ-ADDR.
機能説明
OBJに指定されたインタフェースリポジトリオブジェクトに直接包含される、または継承によって包含されるインタフェースリポジトリオブジェクトのオブジェクトリファレンスをリスト形式で返します。
本関数はオブジェクトリファレンスのリストを格納する領域を獲得するため、この領域が不要になった時点で、CORBA-FREE関数を使用して領域を解放する必要があります。
limit-typeで指定されたインタフェースタイプの包含オブジェクトが返却対象となります。
exclude-inheritedでTRUEが指定された場合は、継承オブジェクトは返却対象としません。
limit-typeがCORBA-DK-ALLで、かつexclude-inheritedがFALSEの場合は、包含/継承するすべてのオブジェクトリファレンスのリストを返します。
返却対象のオブジェクトが見つからない場合は、返却リストのSEQ-LENGTHに0が設定され、オブジェクトリファレンスは不定となります。
復帰値
正常終了した場合、検索されたオブジェクトのオブジェクトリファレンスのリストが返されます。
異常終了した場合、NIL(空の)オブジェクトリファレンスのリストが返されます。また、ENV構造体のMAJORにはCORBA-SYSTEM-EXCEPTIONが返され、IDとMINORに詳細情報が設定されます。IDとMINORの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
名前
CORBA-CONTAINER-LOOKUP-NAME
形式
DATA DIVISION. WORKING-STORAGE SECTION. COPY CONST IN CORBA. 01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ. 01 SEARCH-NAME USAGE IS POINTER. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY LEVELS-TO-SEARCH. 01 COPY DEFINITIONKIND IN CORBA REPLACING CORBA-DEFINITIONKIND BY LIMIT-TYPE. 01 COPY BOOLEAN IN CORBA REPLACING CORBA-BOOLEAN BY EXCLUDE-INHERITED. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 COPY CONTAINEDSEQ IN CORBA REPLACING CORBA-CONTAINEDSEQ USAGE IS CONTAINEDSEQ. PROCEDURE DIVISION. CALL "CORBA-CONTAINER-LOOKUP-NAME" USING OBJ SEARCH-NAME LEVELS-TO-SEARCH LIMIT-TYPE EXCLUDE-INHERITED ENV CONTAINEDSEQ.
機能説明
OBJで指定されたオブジェクトに直接包含される、または継承によって包含されるオブジェクトの中から、指定された名前を持つオブジェクトを見つけだし、そのオブジェクトリファレンスとともに、さらにそのオブジェクトが包含/継承するオブジェクトのオブジェクトリファレンスをリスト形式で返します。
本関数はオブジェクトリファレンスのリストを格納する領域を獲得するため、この領域が不要になった時点で、CORBA-FREE関数を使用して領域を解放する必要があります。
search-nameに、検索のキーとする名前(IDENTIFIER)を指定します。
levels-to-searchには、検索の対象とする階層の深さを指定します。-1が指定されたときには、すべての階層に渡って検索を行い、1が指定されたときには、指定されたオブジェクトの直下にあるオブジェクトだけを検索します。
limit-typeで指定されたインタフェースタイプの包含オブジェクトが返却対象となります。
exclude-inheritedでTRUEが指定された場合は、継承オブジェクトは返却対象としません。
limit-typeがCORBA-DK-ALLで、かつexclude-inheritedがFALSEの場合は、該当オブジェクト、およびそのオブジェクトが包含/継承するすべてのオブジェクトリファレンスのリストを返します。
返却対象のオブジェクトが見つからない場合は、返却リストのSEQ-LENGTHに0が設定され、オブジェクトリファレンスは不定となります。
復帰値
正常終了した場合、検索されたオブジェクトのオブジェクトリファレンスのリストが返されます。
異常終了した場合、NIL(空の)オブジェクトリファレンスのリストが返されます。また、ENV構造体のMAJORにはCORBA-SYSTEM-EXCEPTIONが返され、IDとMINORに詳細情報が設定されます。IDとMINORの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
名前
CORBA-CONTAINER-DESCRIBE-CONTENTS
形式
DATA DIVISION. WORKING-STORAGE SECTION. COPY CONST IN CORBA. 01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ. 01 COPY DEFINITIONKIND IN CORBA REPLACING CORBA-DEFINITIONKIND BY LIMIT-TYPE. 01 COPY BOOLEAN IN CORBA REPLACING CORBA-BOOLEAN BY EXCLUDE-INHERITED. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY MAX-RETURNED-OBJS. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 CONTAINER-DESCRIPTIONSEQ-ADDR USAGE IS POINTER. PROCEDURE DIVISION. CALL "CORBA-CONTAINER-DESCRIBE-CONTENTS" USING OBJ LIMIT-TYPE EXCLUDE-INHERITED MAX-RETURNED-OBJS ENV CONTAINER-DESCRIPTIONSEQ-ADDR.
機能説明
OBJで指定したインタフェースリポジトリオブジェクトに直接包含される、または継承によって包含されるオブジェクトの定義情報を、DESCRIPTION構造体のリスト形式(“4.11.1 型の定義”を参照してください)で返します。
本関数はDESCRIPTION構造体のリストを格納する領域を獲得するため、この領域が不要になった時点で、CORBA-FREE関数を使用して領域を解放する必要があります。
limit-typeで指定されたインタフェースタイプの包含オブジェクトが返却対象となります。
exclude-inheritedでTRUEが指定された場合は、継承オブジェクトは返却対象としません。
max-returned-objsで指定された数分の定義情報が返却されます。
limit-typeがCORBA-DK-ALLでかつExclude-inheritedがFALSEの場合は、包含/継承されるすべてのオブジェクト定義情報リストを返します。ただし、この場合もmax-returned-objsで指定された数分だけが返却対象となります。(登録されている数分得る場合は、max-returned-objsに-1を指定します)
返却対象のオブジェクトが見つからない場合は、返却リストのSEQ-LENGTHに0が設定され、オブジェクトリファレンスは不定となります。
復帰値
正常終了した場合、オブジェクトの定義情報リストのアドレスが返されます。
異常終了した場合、NIL(空の)定義情報リストが返されます。また、ENV構造体のMAJORにはCORBA-SYSTEM-EXCEPTIONが返され、IDとMINORに詳細情報が設定されます。IDとMINORの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
(1) CORBA-CONTAINER--GET-DEF-KIND
(1)については、“IRObject共通インタフェース”を継承します。
“CORBA-IROBJECT”の部分を“CORBA-CONTAINER”に置き換えて使用することができます。
関数の仕様については、“4.11.2 IRObject共通インタフェース”を参照してください。