8.1.2 NamingContextのメソッド
-
CosNaming.NameComponent[ ] n,
org.omg.CORBA.Object obj)
throws
CosNaming.NamingContextPackage.NotFound,
CosNaming.NamingContextPackage.CannotProceed,
CosNaming.NamingContextPackage.InvalidName,
CosNaming.NamingContextPackage.AlreadyBound
このメソッドは,指定されたネームを指定されたObjectにバインドします。このとき,最初のNameComponentに関連づけられたコンテキストを解決し,そのあと,次に示すNameを使用して新しいコンテキストにオブジェクトをバインドします。
Name[NameComponent(2) ,...,NameComponent(n-1) ,NameComponent(n) ]
解決とバインドのこの再帰的なプロセスは,NameComponent (n-1)に関連づけられたコンテキストが解決され,ネームとオブジェクトとの実際のバインドが格納されるまで続きます。パラメタnがシンプルネームである場合には,objは,このNamingContext内のnにバインドされます。
-
n
オブジェクトに指定するネームで初期化されるName構造体
-
obj
ネーミングされるオブジェクト
このメソッドでは,次の例外が発生します。
-
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
-
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
-
InvalidName
指定されたNameにはネームコンポーネントがありません。または,IDフィールドに空文字列を指定したネームコンポーネントがあります。
-
AlreadyBound
ネームがNamingContext内の別のオブジェクトにすでにバインドされています。
-
-
CosNaming.NameComponent[ ] n,
org.omg.CORBA.Object obj)
throws
CosNaming.NamingContextPackage.NotFound,
CosNaming.NamingContextPackage.CannotProceed,
CosNaming.NamingContextPackage.InvalidName
このメソッドは,AlreadyBound例外が発行されないという点を除いて,bindメソッドと同じです。指定されたNameがすでに別のオブジェクトにバインドされている場合には,このバインドは,新しいバインドで置き換えられます。
-
n
オブジェクトに指定するネームで初期化されるName構造体
-
obj
ネーミングされるオブジェクト
このメソッドでは,次の例外が発生します。
-
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
-
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
-
InvalidName
指定されたNameにはネームコンポーネントがありません。または,IDフィールドに空文字列を指定したネームコンポーネントがあります。
-
-
CosNaming NameComponent[ ] n,
CosNaming.NamingContext nc)
throws
CosNaming.NamingContextPackage.NotFound,
CosNaming.NamingContextPackage.CannotProceed,
InvalidName,
CosNaming.NamingContextPackage.AlreadyBound
このメソッドは,指定されたNameが,任意のORBオブジェクトではなく,NamingContextに対応づけられるという点を除いて,bindメソッドと同じです。
-
n
希望するネーミングコンテキスト名で初期化されるName構造体。シーケンス内の最初の(n-1)個のNameComponent構造体は,NamingContextに解決される必要があります。
-
nc
リバインドされるNamingContextオブジェクト
このメソッドでは,次の例外が発生します。
-
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
-
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
-
InvalidName
指定されたNameにはネームコンポーネントがありません。または,IDフィールドに空文字列を指定したネームコンポーネントがあります。
-
AlreadyBound
ネームがNamingContext内の別のオブジェクトにすでにバインドされています。
-
-
CosNaming. NameComponent[ ] n,
CosNaming.NamingContext nc)
throws
CosNaming.NamingContextPackage.NotFound,
CosNaming.NamingContextPackage.CannotProceed,
CosNaming.NamingContextPackage.InvalidName
このメソッドは,AlreadyBound例外が発行されないという点を除いて,bind_contextメソッドと同じです。指定されたNameがすでに別のネーミングコンテキストにバインドされている場合には,このバインドは,新しいバインドで置き換えられます。
-
n
オブジェクトに指定するネームで初期化されるName構造体
-
nc
リバインドされるNamingContextオブジェクト
このメソッドでは,次の例外が発生します。
-
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
-
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
-
InvalidName
指定されたNameにはネームコンポーネントがありません。または,IDフィールドに空文字列を指定したネームコンポーネントがあります。
-
-
public org.omg.CORBA.Object resolve(
CosNaming.NameComponent[ ] n)
throws
CosNaming.NamingContextPackage.NotFound,
CosNaming.NamingContextPackage.CannotProceed,
CosNaming.NamingContextPackage.InvalidName
このメソッドは,指定されたNameを解決し,オブジェクトリファレンスを返します。パラメタnがシンプルネームである場合には,このNamingContextで解決されます。
nがコンプレックスネームである場合には,最初のNameComponentに関連づけられたコンテキストを使用して解決されます。その後,新しいコンテキストを使用して次に示すNameを解決します。
Name[NameComponent(2) ,...,NameComponent(n-1) ,NameComponent(n) ]
この再帰的なプロセスは,n番目のNameComponentに関連づけられたオブジェクトが返されるまで続きます。
-
n
対象となるオブジェクトのネームで初期化されるName構造体
このメソッドでは,次の例外が発生します。
-
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
-
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
-
InvalidName
指定されたNameにはネームコンポーネントがありません。または,IDフィールドに空文字列を指定したネームコンポーネントがあります。
-
-
CosNaming.NameComponent[ ] n)
throws
CosNaming.NamingContextPackage.NotFound,
CosNaming.NamingContextPackage.CannotProceed,
CosNaming.NamingContextPackage.InvalidName
このメソッドは,bindメソッドの逆で,指定されたNameに対応しているバインドを削除します。
-
n
バインドの解除をしたいネームのName構造体
このメソッドでは,次の例外が発生します。
-
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
-
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
-
InvalidName
指定されたNameにはネームコンポーネントがありません。または,IDフィールドに空文字列を指定したネームコンポーネントがあります。
-
-
public CosNaming.NamingContext new_context( )
このメソッドは,新しいネーミングコンテキストを作成します。新しく作成されたコンテキストは,このオブジェクトと同じサーバ内でインプリメントされます。新しいコンテキストは,初期状態ではどのNameにもバインドされていません。
-
public CosNaming.NamingContext bind_new_context(
NamComponent[ ] n)
throws
CosNaming.NamingContextPackage.NotFound,
CosNaming.NamingContextPackage.CannotProceed,
CosNaming.NamingContextPackage.InvalidName,
CosNaming.NamingContextPackage.AlreadyBound
このメソッドは,新しいコンテキストを作成し,そのコンテキスト内で指定されたNameにバインドします。
-
n
新しく作成されたNamingContextオブジェクトに対応するネームで初期化されるName構造体
このメソッドでは,次の例外が発生します。
-
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
-
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
-
InvalidName
指定されたNameにはネームコンポーネントがありません。または,IDフィールドに空文字列を指定したネームコンポーネントがあります。
-
AlreadyBound
ネームがNamingContext内の別のオブジェクトにすでにバインドされています。
-
-
throws
CosNaming.NamingContextPackage.NotEmpty
このメソッドは,現在のネーミングコンテキストを非活性化します。以後,このオブジェクトでオペレーションを呼び出そうとすると,CORBA.OBJECT_NOT_EXISTランタイム例外が発生します。
このメソッドを使用する前に,unbindメソッドを使用して,現在のネーミングコンテキストに対応してバインドされているすべてのNameオブジェクトをバインド解除しておく必要があります。空でないNamingContextを破棄しようとすると,NotEmpty例外が発生します。
NamingContext.destroy( )を発行したあとに,同じNamingContextオブジェクトに対して,_non_existent( )を発行すると,org.omg.CORBA.OBJ_ADAPTER例外が発生します。
-
int how_many,
CosNaming.BindingListHolder bl,
CosNaming.BindingIteratorHolder bi)
このメソッドは,現在のコンテキストに含まれているすべてのバインドを返します。how_manyまでのNameが,BindingListによって返されます。残りのバインドは,すべてBindingIteratorによって返されます。返されたBindingListとBindingIteratorを使用すると,ネームのリストを参照できます。BindingListの詳細については,「8.3 BindingとBindingList」を参照してください。
-
how_many
リストに返されるNameの最大数
-
bl
呼び出しプログラムに返されるNameのリスト。リストのネームの数はhow_manyの値を超えません。
-
bi
残りのNameを参照するためのBindingIteratorオブジェクト
-