ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)
FUJITSU Software

2.13.2 ネーミングコンテキストインタフェース

2.13.2.1 CosNaming::NamingContext::bind()

名前

CosNaming::NamingContext::bind

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
void CosNaming::NamingContext::bind(
      CosNaming::Name n,
      CORBA::Object_ptr obj,
      CORBA::Environment& env );

機能説明

nで指定された名前とobjで指定されたオブジェクトリファレンスのバインディングを作成し、ネーミングコンテキストに登録します。
nがコンパウンドネームである場合、バインディングはコンパウンドネーム中で最後に指定されたネーミングコンテキストに登録されます。

パラメタ

n

名前。

obj

nに指定した名前とバインドするオブジェクトリファレンス。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

ユーザ例外の場合、以下の例外が発生します。

CosNaming::NamingContext::NotFound

nで指定したネーミングコンテキストが見つかりません。

CosNaming::NamingContext::CannotProceed

ネーミングコンテキストが存在しません。

CosNaming::NamingContext::InvalidName

名前の指定に誤りがあります。

CosNaming::NamingContext::AlreadyBound

指定された名前のバインディングがすでに存在します。

システム例外の場合は、設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.13.2.2 CosNaming::NamingContext::rebind()

名前

CosNaming::NamingContext::rebind

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
void CosNaming::NamingContext::rebind(
      CosNaming::Name n,
      CORBA::Object_ptr obj,
      CORBA::Environment& env );

機能説明

nで指定された名前とobjで指定されたオブジェクトリファレンスのバインディングを作成し、ネーミングコンテキストに登録します。指定された名前のバインディングがすでに存在してもエラーにはなりません。
nがコンパウンドネームである場合、バインディングはコンパウンドネーム中で最後に指定されたネーミングコンテキストに登録されます。

パラメタ

n

名前。

obj

nに指定した名前とバインドするオブジェクトリファレンス。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

ユーザ例外の場合は、以下の例外が発生します。

CosNaming::NamingContext::NotFound

nで指定したネーミングコンテキストが見つかりません。

CosNaming::NamingContext::CannotProceed

ネーミングコンテキストが存在しません。

CosNaming::NamingContext::InvalidName

名前の指定に誤りがあります。

システム例外の場合は、設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.13.2.3 CosNaming::NamingContext::bind_context()

名前

CosNaming::NamingContext::bind_context

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
void CosNaming::NamingContext::bind_context(
      CosNaming::Name n,
      CosNaming::NamingContext_ptr nc,
      CORBA::Environment& env );

機能説明

nで指定された名前とncで指定されたネーミングコンテキストのオブジェクトリファレンスのバインディングを作成し、ネーミングコンテキストに登録します。
nがコンパウンドネームである場合、バインディングはコンパウンドネーム中で最後に指定されたネーミングコンテキストに登録されます。

パラメタ

n

名前。

nc

nに指定した名前とバインドするオブジェクトリファレンス。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

ユーザ例外の場合は、以下の例外が発生します。

CosNaming::NamingContext::NotFound

nで指定したネーミングコンテキストが見つかりません。

CosNaming::NamingContext::CannotProceed

ネーミングコンテキストが存在しません。

CosNaming::NamingContext::InvalidName

名前の指定に誤りがあります。

CosNaming::NamingContext::AlreadyBound

指定された名前のバインディングがすでに存在します。

システム例外の場合は、設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

注意事項

ncには、登録先のネーミングサービスのオブジェクトリファレンス、および登録先のネーミングサービスにすでに登録されているネーミングコンテキストのオブジェクトリファレンスを指定しないでください。

2.13.2.4 CosNaming::NamingContext::rebind_context()

名前

CosNaming::NamingContext::rebind_context

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
void CosNaming::NamingContext::rebind_context(
      CosNaming::Name n,
      CosNaming::NamingContext_ptr nc,
      CORBA_Environment& env );

機能説明

nで指定された名前とncで指定されたネーミングコンテキストのオブジェクトリファレンスのバインディングを作成し、ネーミングコンテキストに登録します。指定された名前のバインディングがすでに存在してもエラーにはなりません。
nがコンパウンドネームである場合、バインディングはコンパウンドネーム中で最後に指定されたネーミングコンテキストに登録されます。

パラメタ

n

名前。

nc

nに指定した名前とバインドするオブジェクトリファレンス。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

ユーザ例外の場合、以下の例外が発生します。

CosNaming::NamingContext::NotFound

nで指定したネーミングコンテキストが見つかりません。

CosNaming::NamingContext::CannotProceed

ネーミングコンテキストが存在しません。

CosNaming::NamingContext::InvalidName

名前の指定に誤りがあります。

システム例外の場合は、設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

注意事項

ncには、登録先のネーミングサービスのオブジェクトリファレンス、および登録先のネーミングサービスにすでに登録されているネーミングコンテキストのオブジェクトリファレンスを指定しないでください。

2.13.2.5 CosNaming::NamingContext::resolve()

名前

CosNaming::NamingContext::resolve

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
CORBA::Object_ptr CosNaming::NamingContext::resolve(
      CosNaming::Name n,
      CORBA::Environment& env );

機能説明

ネーミングコンテキスト中で、nに指定された名前と結合されているオブジェクトリファレンスを返します。
本関数はオブジェクトリファレンスを格納する領域を獲得するため、この領域が不要になった時点で、CORBA::release()を使用して領域を解放する必要があります。

パラメタ

n

名前。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、オブジェクトリファレンスが返され、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

ユーザ例外の場合は、以下の例外が発生します。

CosNaming::NamingContext::NotFound

nで指定された名前が見つかりません。

CosNaming::NamingContext::CannotProceed

ネーミングコンテキストが存在しません。

CosNaming::NamingContext::InvalidName

名前の指定に誤りがあります。

システム例外の場合は、設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.13.2.6 CosNaming::NamingContext::unbind()

名前

CosNaming::NamingContext::unbind

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
void CosNaming::NamingContext::unbind(
      CosNaming::Name n,
      CORBA::Environment& env );

機能説明

ネーミングコンテキストから、nで指定された名前のバインディングを削除します。

パラメタ

n

ネーミングコンテキストからバインディングを削除する名前。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

ユーザ例外の場合は、以下の例外が発生します。

CosNaming::NamingContext::NotFound

nで指定された名前が見つかりません。

CosNaming::NamingContext::CannotProceed

ネーミングコンテキストが存在しません。

CosNaming::NamingContext::InvalidName

名前の指定に誤りがあります。

システム例外の場合は、設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.13.2.7 CosNaming::NamingContext::new_context()

名前

CosNaming::NamingContext::new_context

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
CosNaming::NamingContext_ptr CosNaming::NamingContext::new_context(
      CORBA::Environment& env);

機能説明

ネーミングコンテキストを管理するネーミングサーバ内に新しいネーミングコンテキストを作成し、作成されたネーミングコンテキストのオブジェクトリファレンスを返します。
本関数はオブジェクトリファレンスを格納する領域を獲得するため、この領域が不要になった時点で、CORBA::release()を使用して領域を解放する必要があります。

パラメタ

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、ネーミングコンテキストのオブジェクトリファレンスが返され、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionが設定されます。設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

注意事項

2.13.2.8 CosNaming::NamingContext::bind_new_context()

名前

CosNaming::NamingContext::bind_new_context

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
CosNaming::NamingContext_ptr CosNaming::NamingContext::bind_new_context(
      CosNaming_Name n,
      CORBA_Environment *env);

機能説明

新しいネーミングコンテキストを作成し、そのオブジェクトリファレンスとnで指定された名前のバインディングを作成して、既存のネーミングコンテキストに登録します。呼び出し元には、新しいネーミングコンテキストのオブジェクトリファレンスを返します。nがコンパウンドネームである場合、バインディングはコンパウンドネーム中で最後に指定されたネーミングコンテキストに登録されます。また、新しいネーミングコンテキストは、名前の登録が行われたネーミングコンテキストを管理するネーミングサーバ内に作成されます。
本関数はオブジェクトリファレンスを格納する領域を獲得するため、この領域が不要になった時点で、CORBA::release()を使用して領域を解放する必要があります。

パラメタ

n

新しいネーミングコンテキストのオブジェクトリファレンスとバインドする名前。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、ネーミングコンテキストのオブジェクトリファレンスが返され、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

ユーザ例外の場合は、以下の例外が発生します。

CosNaming::NamingContext::NotFound

nで指定したネーミングコンテキストが見つかりません。

CosNaming::NamingContext::CannotProceed

ネーミングコンテキストが存在しません。

CosNaming::NamingContext::InvalidName

名前の指定に誤りがあります。

CosNaming::NamingContext::AlreadyBound

指定された名前のバインディングがすでに存在します。

システム例外の場合は、設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.13.2.9 CosNaming::NamingContext::destroy()

名前

CosNaming::NamingContext::destroy

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
void CosNaming::NamingContext::destroy(
      CORBA::Environment& env );

機能説明

ネーミングコンテキストを削除します。

パラメタ

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。異常終了した場合は、envのexceptionメンバにSystemExceptionオブジェクト、またはUserExceptionオブジェクトのオブジェクトリファレンスが設定されます。

ユーザ例外の場合は、以下の例外が発生します。

CosNaming::NamingContext::NotEmpty

ネーミングコンテキスト内にバインディングが存在します。

システム例外の場合は、設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.13.2.10 CosNaming::NamingContext::list()

名前

CosNaming::NamingContext::list

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
void CosNaming::NamingContext::list(
      CORBA_ULong how_many,
      CosNaming::BindingList *&bl,
      CosNaming::BindingIterator_ptr bi,
      CORBA::Environment& env );

機能説明

ネーミングコンテキスト中のバインディングのリストを、最大でhow_manyで指定された個数分返します。how_manyで指定された値が、nsconfigファイルのbl_how_manyパラメタで設定されている最大バインディング数より大きい場合、ネーミングサービスは最大bl_how_manyパラメタで指定された個数分のバインディングを返します。how_manyに0が設定された場合、クライアントはバインディングにアクセスするためのbiと、長さ0のシーケンスのblを返します。

リストはblで指定されたCosNaming::BindingListに設定されます。CosNaming::BindingListはCosNaming cplus.hで宣言されています。

ネーミングコンテキスト内のバインディングの数がhow_manyで指定された数よりも多い場合、ネーミングコンテキスト内での現在の位置を示すオブジェクトが生成され、このオブジェクトリファレンスがbiに返されます。このオブジェクトをバインディングアイテレータといいます。biに返されたオブジェクトリファレンスは、CosNaming::BindingIterator::next_one()、およびCosNaming::BindingIterator::next_n()の呼び出し時に使用します。

本関数はバインディングアイテレータを格納する領域を獲得するため、これらの領域が不要になった時点で、CosNaming::BindingIterator::destroy()を使用して領域を解放する必要があります。

パラメタ

how_many

獲得したいバインディングリストの個数。

bl

バインディングリストの設定領域。

bi

バインディングアイテレータの設定領域。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、envのexceptionメンバにNULLオブジェクトリファレンスが設定されます。
異常終了した場合は、envのexceptionメンバにSystemExceptionが設定されます。設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.13.2.11 CosNaming::NamingContext::_narrow()

名前

CosNaming::NamingContext::_narrow

形式

#include <orb_cplus.h>
#include <CosNaming_cplus.h>
CosNaming::NamingContext_ptr
CosNaming::NamingContext::_narrow( CORBA::Object_ptr obj );

機能説明

ネーミングサービスから取得したオブジェクトリファレンスをNamingContextクラスへ変換します。

パラメタ

obj

オブジェクトリファレンス

復帰値

正常終了した場合は、オブジェクトリファレンスが返され、env構造体の_majorにCORBA_NO_EXCEPTIONが設定されます。
異常終了した場合は、env構造体の_majorにCORBA_SYSTEM_EXCEPTIONまたはCORBA_USER_EXCEPTIONが設定され、env構造体の_idに詳細情報が設定されます。設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。