8.1.2
NamingContextのメソッド
public void
bind
(
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内の別のオブジェクトにすでにバインドされています。
public void
rebind
(
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フィールドに空文字列を指定したネームコンポーネントがあります。
public void
bind_context
(
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内の別のオブジェクトにすでにバインドされています。
public void
rebind_context
(
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フィールドに空文字列を指定したネームコンポーネントがあります。
public void
unbind
(
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内の別のオブジェクトにすでにバインドされています。
public void
destroy
( )
throws
CosNaming.NamingContextPackage.NotEmpty
このメソッドは,現在のネーミングコンテキストを非活性化します。以後,このオブジェクトでオペレーションを呼び出そうとすると,CORBA.OBJECT_NOT_EXISTランタイム例外が発生します。
このメソッドを使用する前に,unbindメソッドを使用して,現在のネーミングコンテキストに対応してバインドされているすべてのNameオブジェクトをバインド解除しておく必要があります。空でないNamingContextを破棄しようとすると,NotEmpty例外が発生します。
NamingContext.destroy( )を発行したあとに,同じNamingContextオブジェクトに対して,_non_existent( )を発行すると,org.omg.CORBA.OBJ_ADAPTER例外が発生します。
public void
list
(
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オブジェクト