26.1.1
NamingContextのメソッド
virtual void
bind
(
const Name&
_n
, CORBA::Object_ptr
_obj
) ;
このメソッドは,指定されたnameを指定された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
bindオペレーション,またはbind_contextオペレーションのNameは,NamingContext内の別のオブジェクトにすでにバインドされています。
virtual void
rebind
(
const Name&
_n
, CORBA::Object_ptr
_obj
) ;
このメソッドは,AlreadyBound例外が発行されないという点を除いて,bindメソッドと同じです。指定されたNameがすでに別のオブジェクトにバインドされている場合には,このバインドは,新しいバインドで置き換えられます。
_n
オブジェクトに指定するネームで初期化されるName構造体
_obj
ネーミングされるオブジェクト
このメソッドでは,次の例外が発生します。
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
InvalidName
指定されたNameにはネームコンポーネントがありません。またはIDフィールドに空文字列を指定したネームコンポーネントがあります。
virtual void
bind_context
(
const Name&
_n
, NamingContext_ptr
_nc
);
このメソッドは,指定されたNameが,任意のVisiBroker ORBオブジェクトではなく,NamingContextに対応づけられるという点を除いて,bindメソッドと同じです。
_n
希望するネーミングコンテキスト名で初期化されるName構造体。シーケンス内の最初の(n-1)個のNameComponent構造体は,NamingContextを解決する必要があります。
_nc
バインドされるNamingContextオブジェクト
このメソッドでは,次の例外が発生します。
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
InvalidName
指定されたNameにネームコンポーネントがありません。またはIDフィールドに空文字列を指定したネームコンポーネントがあります。
AlreadyBound
bindオペレーション,またはbind_contextオペレーションのNameは,NamingContext内の別のオブジェクトにすでにバインドされています。
virtual void
rebind_context
(
const Name&
_n
, NamingContext_ptr
_nc
);
このメソッドは,AlreadyBound例外が発行されないという点を除いて,bind_contextメソッドと同じです。指定されたNameがすでに別のネーミングコンテキストにバインドされている場合には,このバインドは,新しいバインドで置き換えられます。
_n
オブジェクトに指定するネームで初期化されるName構造体
_nc
リバインドされるNamingContextオブジェクト
このメソッドでは,次の例外が発生します。
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
InvalidName
指定されたNameにはネームコンポーネントがありません。またはIDフィールドに空文字列を指定したネームコンポーネントがあります。
virtual CORBA::Object _ptr
resolve
(
const Name&
_n
);
このメソッドは,指定された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フィールドに空文字列を指定したネームコンポーネントがあります。
virtual void
unbind
(
const Name&
_n
);
このメソッドは,bindメソッドの逆で,指定されたNameに対応しているバインドを削除します。
_n
バインドの解除をしたいネームのName構造体
このメソッドでは,次の例外が発生します。
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
InvalidName
指定されたNameにはネームコンポーネントがありません。またはIDフィールドに空文字列を指定したネームコンポーネントがあります。
virtual NamingContext_ptr
new_context
();
このメソッドは,新しいネーミングコンテキストを作成します。新しく作成されたコンテキストは,このオブジェクトと同じサーバ内で実装されます。新しいコンテキストは,初期状態ではどのNameにもバインドされていません。
virtual NamingContext_ptr
bind_new_context
(
const Name&
_n
);
このメソッドは,新しいコンテキストを作成し,そのコンテキスト内で指定されたNameにバインドします。
_n
新しく作成されたNamingContextオブジェクトに対して指定されたネームで初期化されるName構造体
このメソッドでは,次の例外が発生します。
NotFound
Nameまたはそのコンポーネントの一つが見つかりません。
CannotProceed
シーケンスのNameComponentオブジェクトの一つが解決されていません。クライアントは,返されたネーミングコンテキストからオペレーションを継続できます。
InvalidName
指定されたNameにはネームコンポーネントがありません。またはIDフィールドに空文字列を指定したネームコンポーネントがあります。
AlreadyBound
bindオペレーション,またはbind_contextオペレーションのNameは,NamingContext内の別のオブジェクトにすでにバインドされています。
virtual void
destroy
();
このメソッドは,現在のネーミングコンテキストを非活性化します。このオブジェクトでオペレーションを呼び出そうとすると,CORBA::OBJECT_NOT_EXISTランタイム例外が発生します。
このメソッドを使用する前に,unbindメソッドを使用して,NamingContextオブジェクトに対応してバインドされているすべてのNameオブジェクトをバインド解除しておく必要があります。空でないNamingContextオブジェクトを破棄しようとすると,NotEmpty例外が発生します。
virtual void
list
(
CORBA::ULong
_how_many
,
BindingList_out _
bl
,
BindingIterator_out _
bi
);
このメソッドは,現在のコンテキストに含まれているすべてのバインドを返します。how_manyパラメタで指定した数までのNameが,BindingListによって返されます。残りのバインドは,BindingIteratorによって返されます。返されたBindingListとBindingIteratorを使用すると,ネームのリストを参照できます。BindingListの詳細については,「
26.3 BindingとBindingList
」を参照してください。
_how_many
返されるNameの最大数
_bl
呼び出しプログラムに返されるNameのリスト。リストのネームの数はhow_manyの値を超えません。
_bi
残りのNameを参照するためのイタレータ