ここで説明する関数は、インタフェースリポジトリオブジェクトが他のインタフェースリポジトリオブジェクトを包含する関係を持ち得る各インタフェースリポジトリオブジェクト(このインタフェースリポジトリオブジェクトをContainerと呼ぶ)に継承されて、その継承先のインタフェースリポジトリオブジェクトの関数として使用されます。
名前
CORBA_Container_lookup
形式
#include <orb.h> #include <InterfaceRep.h> CORBA_Contained CORBA_Container_lookup( CORBA_Object obj, CORBA_ScopedName search_name, CORBA_Environment *env );
機能説明
objで指定されたインタフェースリポジトリオブジェクトが包含するインタフェースオブジェクトの中から、指定された名前を持つオブジェクトを見つけだし、そのオブジェクトリファレンスを返します。返却対象のオブジェクトが見つからない場合は、NIL(空の)オブジェクトリファレンスを返して正常終了します。
本関数はオブジェクトリファレンスを格納する領域を獲得するため、この領域が不要になった時点で、CORBA_Object_release()を使用して領域を解放する必要があります。
パラメタ
インタフェースリポジトリオブジェクト。
検索する名前(ScopedName)。
例外情報が格納される構造体。
復帰値
正常終了した場合は、指定された名前を持つオブジェクトのオブジェクトリファレンスが返されます。
異常終了した場合は、NIL(空の)オブジェクトリファレンスが返されます。また、env構造体の_majorにはCORBA_SYSTEM_EXCEPTIONが返され、_idと_minorに詳細情報が設定されます。
_idと_minorの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
名前
CORBA_Container_contents
形式
#include <orb.h> #include <InterfaceRep.h> CORBA_ContainedSeq *CORBA_Container_contents( CORBA_Object obj, CORBA_DefinitionKind limit_type, CORBA_boolean exclude_inherited, CORBA_Environment *env );
機能説明
objに指定されたインタフェースリポジトリオブジェクトに直接包含される、または継承によって包含されるインタフェースリポジトリオブジェクトのオブジェクトリファレンスをリスト形式で返します。
返却対象のオブジェクトが見つからない場合は、返却リストの_lengthに0が設定され、オブジェクトリファレンスは不定となります。
本関数はオブジェクトリファレンスのリストを格納する領域を獲得するため、この領域が不要になった時点で、CORBA_free()を使用して領域を解放する必要があります。
パラメタ
インタフェースリポジトリオブジェクト。
検索するインタフェースタイプの包含オブジェクト。
本パラメタにCORBA_dk_allを指定し、exclude_inheritedにFALSEを指定すると、包含/継承するすべてのオブジェクトリファレンスを対象とします。
TRUE:
継承オブジェクトを検索の対象としません。
FALSE:
継承オブジェクトを検索の対象とします。
例外情報が格納される構造体。
復帰値
正常終了した場合は、検索されたオブジェクトのオブジェクトリファレンスのリストが返されます。
異常終了した場合は、NIL(空の)オブジェクトリファレンスのリストが返されます。また、env構造体の_majorにはCORBA_SYSTEM_EXCEPTIONが返され、_idと_minorに詳細情報が設定されます。
_idと_minorの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
名前
CORBA_Container_lookup_name
形式
#include <orb.h> #include <InterfaceRep.h> CORBA_ContainedSeq *CORBA_Container_lookup_name( CORBA_Object obj, CORBA_Identifier search_name, CORBA_long levels_to_search, CORBA_DefinitionKind limit_type, CORBA_boolean exclude_inherited, CORBA_Environment *env );
機能説明
objで指定されたオブジェクトに直接包含される、または継承によって包含されるオブジェクトの中から、指定された名前を持つオブジェクトを見つけだし、そのオブジェクトリファレンスとともに、さらにそのオブジェクトが包含/継承するオブジェクトのオブジェクトリファレンスをリスト形式で返します。
返却対象のオブジェクトが見つからない場合は、返却リストの_lengthに0が設定され、オブジェクトリファレンスは不定となります。
本関数はオブジェクトリファレンスのリストを格納する領域を獲得するため、この領域が不要になった時点で、CORBA_free()を使用して領域を解放する必要があります。
パラメタ
インタフェースリポジトリオブジェクト。
検索のキーとする名前(Identifier)。
検索の対象とする階層の深さ。-1を指定すると、すべての階層を検索します。1を指定すると、指定されたオブジェクトの直下にあるオブジェクトだけを検索します。
検索するインタフェースタイプの包含オブジェクト。
本パラメタにCORBA_dk_allを指定し、exclude_inheritedにFALSEを指定すると、該当オブジェクトおよびそのオブジェクトが包含/継承するすべてのオブジェクトリファレンスを対象とします。
TRUE:
継承オブジェクトを検索の対象としません。
FALSE:
継承オブジェクトを検索の対象とします。
例外情報が格納される構造体。
復帰値
正常終了した場合は、検索されたオブジェクトのオブジェクトリファレンスのリストが返されます。
異常終了した場合は、NIL(空の)オブジェクトリファレンスのリストが返されます。また、env構造体の_majorにはCORBA_SYSTEM_EXCEPTIONが返され、_idと_minorに詳細情報が設定されます。
_idと_minorの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
名前
CORBA_Container_describe_contents
形式
#include <orb.h> #include <InterfaceRep.h> CORBA_Container_DescriptionSeq *CORBA_Container_describe_contents( CORBA_Object obj, CORBA_DefinitionKind limit_type, CORBA_boolean exclude_inherited, CORBA_long max_returned_objs, CORBA_Environment *env );
機能説明
objで指定したインタフェースリポジトリオブジェクトに直接包含される、または継承によって包含されるオブジェクトの定義情報を、Description構造体のリスト形式(“1.10.1 型の定義”を参照してください)で返します。
返却対象のオブジェクトが見つからない場合は、返却リストの_lengthに0が設定され、オブジェクトリファレンスは不定となります。
本関数はDescription構造体のリストを格納する領域を獲得するため、この領域が不要になった時点で、CORBA_free()を使用して領域を解放する必要があります。
パラメタ
インタフェースリポジトリオブジェクト。
検索するインタフェースタイプの包含オブジェクト。
本パラメタにCORBA_dk_allを指定し、exclude_inheritedにFALSEを指定すると、包含/継承されるすべてのオブジェクト定義情報リストを返します。ただし、この場合もmax_returned_objsで指定された数分だけが返却対象となります(登録されている数分を得る場合は、max_returned_objsに-1を指定します)。
TRUE:
継承オブジェクトを検索の対象としません。
FALSE:
継承オブジェクトを検索の対象とします。
定義情報を返す数。
例外情報が格納される構造体。
復帰値
正常終了した場合は、オブジェクトの定義情報リストが返されます。
異常終了した場合は、NIL(空の)定義情報リストが返されます。また、env構造体の_majorにはCORBA_SYSTEM_EXCEPTIONが返され、_idと_minorに詳細情報が設定されます。
_idと_minorの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
(1) CORBA_Container__get_def_kind
(1)については、“IRObject共通インタフェース”を継承します。
“CORBA_IRObject”の部分を“CORBA_Container”に置き換えて使用することができます。
関数の仕様については、“1.10.2 IRObject共通インタフェース”を参照してください。