bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo CORBA プログラミング・リファレンス

 Previous Next Contents View as PDF  

CosLifeCycle::FactoryFinder::find_factories

概要

ファクトリ・オブジェクト・リファレンスのシーケンスを取得します。

C++ マッピング

CosLifeCycle::Factories *
CORBA::Object_ptr CosLifeCycle::FactoryFinder::find_factories(
const CosNaming::Name& factory_key)
throw (CosLifeCycle::NoFactory);

Java マッピング

import org.omg.CosLifeCycle.*;
public org.omg.CORBA.Object[] find_factories(
org.omg.CosNaming.NameComponent[] factory_key)
throws org.omg.CosLifeCycle.NoFactory;

パラメータ

factory_key

このパラメータは、ファクトリ・オブジェクト・リファレンスを一意に識別する、NameComponents (<id, kind> ペアのタプル) のアンバウンディッド・シーケンスです。

NameComponent は、id および kind の 2 つのメンバを持つものとして定義されます。これらのメンバは双方とも、文字列型です。id フィールドは、ファクトリ・オブジェクトの ID を表すのに使用されます。kind フィールドは、id フィールドの値をどのように解釈するかを示すのに使用されます。

オペレーション TP::register_factory を使用して登録されたファクトリ・オブジェクトへのリファレンスの kind 値は、"FactoryInterface" となります。

例外

CORBA::BAD_PARAM

入力パラメータの値が、不適切であるか無効であることを示します。特に重要なのは、この例外が、パラメータ factory_key に指定された値が存在しないか、NULL 値であった場合に発生するということです。

CosLifeCycle::NoFactory

factory_key パラメータの情報に一致するファクトリが登録されていないことを示します。

説明

アプリケーションによって find_factories メソッドが呼び出され、ファクトリ・オブジェクト・リファレンスのシーケンスが取得されます。オペレーションには、必要なファクトリを識別するキーが渡されます。このキーは、CORBA サービス・ネーミング・サービスで定義した名前です。キーに一致するファクトリは複数存在することがあります。そのような場合、FactoryFinder はファクトリのシーケンスを返します。

このキーのスコープは、FactoryFinder です。FactoryFinder は、キーにセマンティクスを割り当てません。単に、キーを照合するだけです。インターフェイスや返されたファクトリのインプリメンテーション、または作成するオブジェクトについての保証も行いません。

キー値が等価であると見なされるのは、長さが等しい、つまりシーケンス中のエレメント数が同じである場合と、キーの中の各 NameComponent 値がすべて、ファクトリ・オブジェクトへのリファレンス登録時に指定されたキーの中のまったく同じ場所にある、対応する NameComponent 値に一致する場合です。

戻り値

factory_key パラメータの値として指定された情報に一致する、ファクトリ・オブジェクトへのリファレンスのアンバウンディッド・シーケンスです。C++ では、メソッドは CosLifeCycle::Factory 型のオブジェクト・リファレンスのシーケンスを返します。Java では、メソッドは org.omg.CORBA.Object 型のオブジェクト・リファレンスのアンバウンディッド配列を返します。

オペレーションが例外を生成した場合には、戻り値は無効であり、呼び出し側によって解放される必要はありません。

単一のファクトリ・オブジェクトへのリファレンスを取得します。

C++ マッピング

virtual CosLifeCycle::Factory_ptr 
find_one_factory( const CosNaming::Name& factory_key) = 0;

Java マッピング

public org.omg.CORBA.Object 
find_one_factory( org.omg.CosNaming.NameComponent[] factory_key)
throws
org.omg.CosLifeCycle.NoFactory,
com.beasys.Tobj.CannotProceed,
com.beasys.Tobj.RegistrarNotAvailable;

パラメータ

factory_key

このパラメータは、ファクトリ・オブジェクト・リファレンスを一意に識別する、NameComponents (<id, kind> ペアのタプル) のアンバウンディッド・シーケンスです。

NameComponent は、id および kind の 2 つのメンバを持つものとして定義されます。これらのメンバは双方とも、文字列型です。id フィールドは、ファクトリ・オブジェクトの ID を表すのに使用されます。kind フィールドは、id フィールドの値をどのように解釈するかを示すのに使用されます。

オペレーション TP::register_factory を使用して登録されたファクトリ・オブジェクトへのリファレンスの kind 値は、"FactoryInterface" となります。

例外

CORBA::BAD_PARAM

入力パラメータの値が、不適切であるか無効であることを示します。特に重要なのは、この例外が、パラメータ factory_key に指定された値が存在しないか、NULL 値であった場合に発生するということです。

CosLifeCycle::NoFactory

factory_key パラメータの情報に一致するファクトリが登録されていないことを示します。

FactoryFinder または NameManager が、ファクトリ・オブジェクトのリファレンスを見つけようとしているときに内部エラーに遭遇したことを示します。

エラー情報は、ユーザ・ログに書き込まれます。

FactoryFinder が NameManager と通信できなかったことを示します。

エラー情報は、ユーザ・ログに書き込まれます。

説明

アプリケーションにより find_one_factory メソッドが呼び出され、メソッドへの入力として指定されたキーの値と一致するキーを備えた唯一のファクトリ・オブジェクトへのリファレンスが取得されます。指定されたキーで複数のファクトリ・オブジェクトが登録されている場合、FactoryFinder のロード・バランシング・スキーマに基づき、FactoryFinder はファクトリ・オブジェクトを 1 つ選択します。その結果、同じキーで find_one_factory メソッドを複数回、呼び出すと、さまざまなオブジェクト・リファレンスが返ることがあります。

このキーのスコープは、FactoryFinder です。FactoryFinder は、キーにセマンティクスを割り当てません。単に、キーを照合するだけです。インターフェイスや返されたファクトリのインプリメンテーション、または作成するオブジェクトについての保証も行いません。

キー値が等価であると見なされるのは、長さが等しい、つまりシーケンス中のエレメント数が同じである場合と、キーの中の各 NameComponent 値がすべて、ファクトリ・オブジェクトへのリファレンス登録時に指定されたキーの中のまったく同じ場所にある、対応する NameComponent 値に一致する場合です。

戻り値

ファクトリ・オブジェクトのオブジェクト・リファレンスです。C++ では、メソッドは CosLifeCycle::Factory 型のオブジェクト・リファレンスを返します。Java では、メソッドは org.omg.CORBA.Object 型のオブジェクト・リファレンスを返します。

オペレーションが例外を生成した場合には、戻り値は無効であり、呼び出し側によって解放される必要はありません。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy