jp.co.nec.orb
インタフェース NamingContextRrOperations

既知のサブインタフェースの一覧:
NamingContextRr

public interface NamingContextRrOperations

名前サーバに対して同一の名前でresolveを実行するたびに別のオブジェクトを返すことができます。 この機能を名前サーバのラウンドロビン機能と呼びます。Object Broker独自の拡張機能です。


メソッドの概要
 void bind_context(NameComponent[] n, NamingContextRr nc)
          名前コンテキストに、バインディング(名前と名前コンテキストの対応)を生成します。
 NamingContextRr bind_new_context(NameComponent[] n)
          このオペレーションを発行した名前コンテキストに、 名前と生成された名前コンテキストのオブジェクトリファレンスとの対応(バインディング)を生成します。
 void bind_rr(NameComponent[] n, Object obj, int i)
          名前コンテキストに、バインディング(名前とオブジェクトリファレンスの対応)を ラウンドロビン検索の順番を指定して生成します。
 void bind(NameComponent[] n, Object obj)
          名前コンテキストに、バインディング(名前とオブジェクトリファレンスの対応)を生成します。
 void clear_rr(NameComponent[] n)
          名前コンテキストでresolveを実行するときに、ラウンドロビン検索の使用の設定を解除します。
 void destroy()
          名前コンテキストを削除します。
 void list(int how_many, BindingListHolder bl, BindingIteratorHolder bi)
          名前コンテキストに登録されているバインディングの一覧を取得します。
 NamingContextRr new_context()
          名前コンテキストを生成します。
 void rebind_context(NameComponent[] n, NamingContextRr nc)
          すでに使用されている名前を別の名前コンテキストに対応させて、バインディングを生成します。
 void rebind_rr(NameComponent[] n, Object obj, int i)
          すでに使用されている名前を別のオブジェクトに対応させて、 バインディングをラウンドロビン検索の順番を指定して生成します。
 void rebind(NameComponent[] n, Object obj)
          すでに使用されている名前を別のオブジェクトに対応させて、 バインディングを生成します。
 Object resolve(NameComponent[] n)
          名前コンテキストから、指定した名前に対応するオブジェクトリファレンスを検索します。
 void unbind_rr(NameComponent[] n, int i)
          名前コンテキストから、指定された順番の指定した名前に対応するバインディングを削除します。
 void unbind(NameComponent[] n)
          名前コンテキストから、指定した名前に対応するバインディングを削除します。
 void use_rr(NameComponent[] n)
          名前コンテキストでresolveを実行するときに、ラウンドロビン検索を使用することを設定します。
 

メソッドの詳細

bind

public void bind(NameComponent[] n,
                 Object obj)
          throws NotFound,
                 CannotProceed,
                 InvalidName,
                 AlreadyBound
名前コンテキストに、バインディング(名前とオブジェクトリファレンスの対応)を生成します。 最後以外の階層はバインディングが存在し、それが名前コンテキストであるものを指定します。 また、すでに使われている名前は指定できません。
パラメータ:
n - 名前を表すNameComponentオブジェクトの配列
obj - オブジェクトリファレンス
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である
AlreadyBound - 名前がすでに使用されている

rebind

public void rebind(NameComponent[] n,
                   Object obj)
            throws NotFound,
                   CannotProceed,
                   InvalidName
すでに使用されている名前を別のオブジェクトに対応させて、 バインディングを生成します。 そのため、以前のオブジェクトリファレンスに対応するバインディングは失われます。 最後以外の階層はバインディングが存在し、それが名前コンテキストであるものを指定します。
パラメータ:
n - 名前を表すNameComponentオブジェクトの配列
obj - オブジェクトリファレンス
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である

bind_context

public void bind_context(NameComponent[] n,
                         NamingContextRr nc)
                  throws NotFound,
                         CannotProceed,
                         InvalidName,
                         AlreadyBound
名前コンテキストに、バインディング(名前と名前コンテキストの対応)を生成します。 最後以外の階層はバインディングが存在し、それが名前コンテキストであるものを指定します。 また、すでに使われている名前は指定できません。
パラメータ:
n - 名前を表すNameComponentオブジェクトの配列
nc - 名前コンテキスト
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である
AlreadyBound - 名前がすでに使用されている

rebind_context

public void rebind_context(NameComponent[] n,
                           NamingContextRr nc)
                    throws NotFound,
                           CannotProceed,
                           InvalidName
すでに使用されている名前を別の名前コンテキストに対応させて、バインディングを生成します。 そのため、以前の名前コンテキストに対応するバインディングは失われます。 最後以外の階層はバインディングが存在し、それが名前コンテキストであるものを指定します。
パラメータ:
n - 名前を表すNameComponentオブジェクトの配列
nc - 名前コンテキスト
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である

resolve

public Object resolve(NameComponent[] n)
               throws NotFound,
                      CannotProceed,
                      InvalidName
名前コンテキストから、指定した名前に対応するオブジェクトリファレンスを検索します。 名前には、すべての階層のバインディングが存在し、それが名前コンテキストであるものを指定します。
パラメータ:
n - 名前
戻り値:
オブジェクトリファレンス
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である

unbind

public void unbind(NameComponent[] n)
            throws NotFound,
                   CannotProceed,
                   InvalidName
名前コンテキストから、指定した名前に対応するバインディングを削除します。 名前には、すべての階層のバインディングが存在し、それが名前コンテキストであるものを指定します。
パラメータ:
n - 名前
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である

new_context

public NamingContextRr new_context()
名前コンテキストを生成します。生成した名前コンテキストはLostAndFoundにつながっています。 この名前コンテキストに名前をつけるとLostAndFoundからはずされます。
戻り値:
生成された名前コンテキストオブジェクト

bind_new_context

public NamingContextRr bind_new_context(NameComponent[] n)
                                 throws NotFound,
                                        AlreadyBound,
                                        CannotProceed,
                                        InvalidName
このオペレーションを発行した名前コンテキストに、 名前と生成された名前コンテキストのオブジェクトリファレンスとの対応(バインディング)を生成します。 最後以外の階層はバインディングが存在し、それが名前コンテキストであるものを指定します。 また、すでに使われている名前は指定できません。
パラメータ:
n - 名前を表すNameComponentオブジェクトの配列
戻り値:
生成された名前コンテキストオブジェクト
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である
AlreadyBound - 名前がすでに使用されている

destroy

public void destroy()
             throws NotEmpty
名前コンテキストを削除します。 ルートコンテキスト(名前サービスのオブジェクトリファレンスと同一) およびLostAndFoundに対してはdestroyを呼び出さないでください。
この名前コンテキストが他の名前コンテキストからバインドされていても、 名前コンテキストを削除し、正常終了します。 削除された名前コンテキストをバインドしている名前コンテキストのバインディングは削除されません。 バインディングを削除するには、 削除された名前コンテキストをバインディングしていた名前コンテキストに対して jp.co.nec.orb.NamingContextRr.unbindを実行してください。
例外:
NotEmpty - 名前コンテキストにバインディングが存在する

list

public void list(int how_many,
                 BindingListHolder bl,
                 BindingIteratorHolder bi)
名前コンテキストに登録されているバインディングの一覧を取得します。 要求数が名前コンテキストのバインディング数以上であれば、 リストをBindingListHolderオブジェクトに返します。 このとき、BindingIteratorHolderオブジェクトにはnilオブジェクトが返ります。 要求数が名前コンテキストのバインディング数未満であれば、 BindingIteratorを生成し、残りのバインディングを、BindingIteratorにコピーします。 そして、BindingIteratorHolderオブジェクトに、 生成したBindingIteratorのオブジェクトリファレンスを返し、 BindingListHolderオブジェクトに要求数分のバインディングを返します。 取得したBindingIteratorは削除しなければ、メモリ上に蓄積され、性能などに影響を与えることがあります。
パラメータ:
how_many - 要求数
bl - BindingListHolderオブジェクト
bi - BindingIteratorHolderオブジェクト

use_rr

public void use_rr(NameComponent[] n)
名前コンテキストでresolveを実行するときに、ラウンドロビン検索を使用することを設定します。
パラメータ:
n - 検索時にラウンドロビンを使用する名前

clear_rr

public void clear_rr(NameComponent[] n)
名前コンテキストでresolveを実行するときに、ラウンドロビン検索の使用の設定を解除します。
パラメータ:
n -  

bind_rr

public void bind_rr(NameComponent[] n,
                    Object obj,
                    int i)
             throws NotFound,
                    CannotProceed,
                    InvalidName,
                    AlreadyBound
名前コンテキストに、バインディング(名前とオブジェクトリファレンスの対応)を ラウンドロビン検索の順番を指定して生成します。 ラウンドロビンの順番は必ずしも連番でなくてもかまいませんが、resolveによる検索時の性能は劣化します。
パラメータ:
n - 名前
obj - オブジェクトリファレンス
i - ラウンドロビンの順番
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である
AlreadyBound - 名前がすでに使用されている

rebind_rr

public void rebind_rr(NameComponent[] n,
                      Object obj,
                      int i)
               throws NotFound,
                      CannotProceed,
                      InvalidName
すでに使用されている名前を別のオブジェクトに対応させて、 バインディングをラウンドロビン検索の順番を指定して生成します。 そのため、以前のオブジェクトリファレンスに対応するバインディングは失われます。
パラメータ:
n - 名前
obj - オブジェクトリファレンス
i - ラウンドロビンの順番
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である、LostAndFoundを指定した

unbind_rr

public void unbind_rr(NameComponent[] n,
                      int i)
               throws NotFound,
                      CannotProceed,
                      InvalidName
名前コンテキストから、指定された順番の指定した名前に対応するバインディングを削除します。
パラメータ:
n - 名前
i - ラウンドロビンの順番
例外:
NotFound - 名前の最後以外の階層に対応するバインディングが存在しない、名前の最後以外の階層が名前コンテキストでない
CannotProceed - この名前サーバだけでは解決できない
InvalidName - 名前の長さが0である、LostAndFoundを指定した