OpenRTM-aist  1.2.1
公開型 | 公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
RTC::CorbaNaming クラス

CORBA Naming Service ヘルパークラス [詳解]

#include <CorbaNaming.h>

公開型

typedef CORBA::SystemException SystemException
 
typedef CosNaming::NamingContext::NotFound NotFound
 
typedef CosNaming::NamingContext::CannotProceed CannotProceed
 
typedef CosNaming::NamingContext::InvalidName InvalidName
 
typedef CosNaming::NamingContext::AlreadyBound AlreadyBound
 
typedef CosNaming::NamingContext::NotEmpty NotEmpty
 
typedef CosNaming::NamingContextExt::InvalidAddress InvalidAddress
 
typedef std::vector< CORBA::Object_ptr > ObjectList
 

公開メンバ関数

 CorbaNaming (CORBA::ORB_ptr orb)
 コンストラクタ [詳解]
 
 CorbaNaming (CORBA::ORB_ptr orb, const char *name_server)
 コンストラクタ [詳解]
 
virtual ~CorbaNaming (void)
 仮想デストラクタ [詳解]
 
void init (const char *name_server)
 ネーミングサービスの初期化 [詳解]
 
bool isAlive ()
 
void bind (const CosNaming::Name &name, CORBA::Object_ptr obj, const bool force=1) throw (SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound)
 Object を bind する [詳解]
 
void bindByString (const char *string_name, CORBA::Object_ptr obj, const bool force=1) throw (SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound)
 Object を bind する [詳解]
 
void bindRecursive (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj) throw (SystemException, CannotProceed, InvalidName, AlreadyBound)
 途中のコンテキストを再帰的に bind しながら Object を bind する [詳解]
 
void rebind (const CosNaming::Name &name, CORBA::Object_ptr obj, const bool force=1) throw (SystemException, NotFound, CannotProceed, InvalidName)
 Object を rebind する [詳解]
 
void rebindByString (const char *string_name, CORBA::Object_ptr obj, const bool force=1) throw (SystemException, NotFound, CannotProceed, InvalidName)
 Object を rebind する [詳解]
 
void rebindRecursive (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj) throw (SystemException, CannotProceed, InvalidName)
 途中のコンテキストを bind しながら Object を rebind する [詳解]
 
void bindContext (const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt, const bool force=1) throw (SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound)
 NamingContext を bind する [詳解]
 
void bindContext (const char *string_name, CosNaming::NamingContext_ptr name_cxt, const bool force=1) throw (SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound)
 NamingContext を bind する [詳解]
 
void bindContextRecursive (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt)
 途中のコンテキストを再帰的に bind し NamingContext を bind する [詳解]
 
void rebindContext (const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt, const bool force=1) throw (SystemException, NotFound, CannotProceed, InvalidName)
 NamingContext を rebind する [詳解]
 
void rebindContext (const char *string_name, CosNaming::NamingContext_ptr name_cxt, const bool force=1) throw (SystemException, NotFound, CannotProceed, InvalidName)
 NamingContext を rebind する [詳解]
 
void rebindContextRecursive (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt)
 途中のコンテキストを再帰的に rebind し NamingContext を rebind する [詳解]
 
CORBA::Object_ptr resolve (const CosNaming::Name &name) throw (SystemException, NotFound, CannotProceed, InvalidName)
 与えられた NameComponent にバインドされている Object を返す [詳解]
 
CORBA::Object_ptr resolve (const char *string_name) throw (SystemException, NotFound, CannotProceed, InvalidName)
 与えられた NameComponent にバインドされている Object を返す [詳解]
 
void unbind (const CosNaming::Name &name) throw (SystemException, NotFound, CannotProceed, InvalidName)
 与えられた NameComponent のバインディングを削除する [詳解]
 
void unbind (const char *string_name) throw (SystemException, NotFound, CannotProceed, InvalidName)
 与えられた NameComponent のバインディングを削除する [詳解]
 
CosNaming::NamingContext_ptr newContext ()
 新しいコンテキストを生成する [詳解]
 
CosNaming::NamingContext_ptr bindNewContext (const CosNaming::Name &name, bool force=true) throw (SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound)
 新しいコンテキストを bind する [詳解]
 
CosNaming::NamingContext_ptr bindNewContext (const char *string_name, bool force=true) throw (SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound)
 新しいコンテキストを bind する [詳解]
 
void destroy (CosNaming::NamingContext_ptr context) throw (SystemException, NotEmpty)
 NamingContext を非アクティブ化する [詳解]
 
void destroyRecursive (CosNaming::NamingContext_ptr context) throw (SystemException, NotEmpty, NotFound, CannotProceed, InvalidName)
 NamingContext を再帰的に下って非アクティブ化する [詳解]
 
void clearAll ()
 すべての Binding を削除する [詳解]
 
void list (CosNaming::NamingContext_ptr name_cxt, CORBA::ULong how_many, CosNaming::BindingList_var &bl, CosNaming::BindingIterator_var &bi)
 与えられた NamingContext の Binding を取得する [詳解]
 
void list (const char *string_name, CosNaming::BindingList_var &bl)
 与えられた Naming パス以下のすべてのバインディングを取得する [詳解]
 
void listByKind (const char *string_name, const char *string_kind, CosNaming::BindingList_var &bl)
 与えられたパス以下の指定されたkindのバインディングを取得する [詳解]
 
char * toString (const CosNaming::Name &name) throw (SystemException, InvalidName)
 与えられた NameComponent の文字列表現を返す [詳解]
 
CosNaming::Name toName (const char *string_name) throw (SystemException, InvalidName)
 与えられた文字列表現を NameComponent に分解する [詳解]
 
char * toUrl (char *addr, char *string_name) throw (SystemException, InvalidAddress, InvalidName)
 与えられた addre と string_name から URL表現を取得する [詳解]
 
CORBA::Object_ptr resolveStr (const char *string_name) throw (SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound)
 与えられた文字列表現を resolve しオブジェクトを返す [詳解]
 
CORBA::Object_ptr bindOrResolve (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj)
 オブジェクトの名前をバインドまたは解決する [詳解]
 
CosNaming::NamingContext_ptr bindOrResolveContext (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CosNaming::NamingContext_ptr new_context)
 名前をバインドまたは解決する [詳解]
 
CosNaming::NamingContext_ptr bindOrResolveContext (CosNaming::NamingContext_ptr context, const CosNaming::Name &name)
 名前をバインドまたは解決する [詳解]
 
const char * getNameServer ()
 ネームサーバの名前を取得する [詳解]
 
CosNaming::NamingContext_ptr getRootContext ()
 ルートコンテキストを取得する [詳解]
 
bool isNamingContext (CORBA::Object_ptr obj)
 オブジェクトがネーミングコンテキストか判別する [詳解]
 
bool isNamingContext (const CosNaming::Name &name)
 与えられた名前がネーミングコンテキストかどうか [詳解]
 
bool isNamingContext (const char *string_name)
 与えられた名前がネーミングコンテキストかどうか [詳解]
 
CosNaming::Name subName (const CosNaming::Name &name, CORBA::Long begin, CORBA::Long end=-1)
 ネームコンポーネントの部分を返す [詳解]
 

限定公開メンバ関数

void nameToString (const CosNaming::Name &name, char *string_name, CORBA::ULong slen)
 ネームコンポーネントの文字列表現を取得する [詳解]
 
CORBA::ULong getNameLength (const CosNaming::Name &name)
 ネームコンポーネントの文字列表現時の文字長を取得する [詳解]
 
unsigned int split (const std::string &input, const std::string &delimiter, std::vector< std::string > &results)
 文字列の分割 [詳解]
 

限定公開変数類

CORBA::ORB_ptr m_ptrORB
 ORB. [詳解]
 
std::string m_nameServer
 ネームサーバ名称 [詳解]
 
CosNaming::NamingContextExt_var m_rootContext
 指定したネームサーバのルートコンテキスト [詳解]
 

詳解

CORBA Naming Service ヘルパークラス

このクラスは、CosNaming::NamingContext に対するラッパークラスである。 CosNaming::NamingContext が持つオペレーションとほぼ同じ機能の オペレーションを提供するとともに、ネームコンポーネント CosNaming::Name の代わりに文字列による名前表現を受け付けるオペレーションも提供する。

オブジェクトは生成時、あるいは生成直後に CORBA ネームサーバに接続し 以後、このネームサーバのルートコンテキストに対して種々のオペレーション を処理する。 深い階層のネーミングコンテキストの作成やオブジェクトのバインドにおいて、 途中のコンテキストが存在しない場合でも、強制的にコンテキストをバインド し目的のコンテキストやオブジェクトのバインドを行うこともできる。

から
0.4.0

型定義メンバ詳解

typedef CosNaming::NamingContext::AlreadyBound RTC::CorbaNaming::AlreadyBound
typedef CosNaming::NamingContext::CannotProceed RTC::CorbaNaming::CannotProceed
typedef CosNaming::NamingContextExt::InvalidAddress RTC::CorbaNaming::InvalidAddress
typedef CosNaming::NamingContext::InvalidName RTC::CorbaNaming::InvalidName
typedef CosNaming::NamingContext::NotEmpty RTC::CorbaNaming::NotEmpty
typedef CosNaming::NamingContext::NotFound RTC::CorbaNaming::NotFound
typedef std::vector<CORBA::Object_ptr> RTC::CorbaNaming::ObjectList
typedef CORBA::SystemException RTC::CorbaNaming::SystemException

構築子と解体子

RTC::CorbaNaming::CorbaNaming ( CORBA::ORB_ptr  orb)

コンストラクタ

引数
orbORB
RTC::CorbaNaming::CorbaNaming ( CORBA::ORB_ptr  orb,
const char *  name_server 
)

コンストラクタ

引数
orbORB
name_serverネームサーバの名称
virtual RTC::CorbaNaming::~CorbaNaming ( void  )
inlinevirtual

仮想デストラクタ

参照先 init(), isAlive().

関数詳解

void RTC::CorbaNaming::bind ( const CosNaming::Name &  name,
CORBA::Object_ptr  obj,
const bool  force = 1 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName,
AlreadyBound
)

Object を bind する

CosNaming::bind() とほぼ同等の働きをするが、常に与えられたネームサーバの ルートコンテキストに対してbind()が呼び出される点が異なる。

Name <name> と Object <obj> を当該 NamingContext 上にバインドする。 c_n が n 番目の NameComponent をあらわすとすると、 name が n 個の NameComponent から成るとき、以下のように扱われる。

cxt->bind(<c_1, c_2, ... c_n>, obj) は以下の操作と同等である。 cxt->resolve(<c_1, ... c_(n-1)>)->bind(<c_n>, obj)

すなわち、1番目からn-1番目のコンテキストを解決し、n-1番目のコンテキスト 上に name <n> として obj を bind する。 名前解決に参加する <c_1, ... c_(n-1)> の NemingContext は、 bindContext()rebindContext() で既にバインド済みでなければならない。 もし <c_1, ... c_(n-1)> の NamingContext が存在しない場合には、 NotFound 例外が発生する。

ただし、強制バインドフラグ force が true の時は、<c_1, ... c_(n-1)> が存在しない場合にも、再帰的にコンテキストをバインドしながら、 最終的に obj を名前 name <c_n> にバインドする。

いずれの場合でも、n-1番目のコンテキスト上に name<n> のオブジェクト (Object あるいは コンテキスト) がバインドされていれば AlreadyBound 例外が発生する。

引数
nameオブジェクトに付ける名前の NameComponent
obj関連付けられる Object
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
AlreadyBoundname <c_n> の Object がすでにバインドされている。
void RTC::CorbaNaming::bindByString ( const char *  string_name,
CORBA::Object_ptr  obj,
const bool  force = 1 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName,
AlreadyBound
)

Object を bind する

Object を bind する際に与える名前が文字列表現であること以外は、bind() と同じである。bind(toName(string_name), obj) と等価。

引数
string_nameオブジェクトに付ける名前の文字列表現
obj関連付けられるオブジェクト
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
AlreadyBoundname <n> の Object がすでにバインドされている。
void RTC::CorbaNaming::bindContext ( const CosNaming::Name &  name,
CosNaming::NamingContext_ptr  name_cxt,
const bool  force = 1 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName,
AlreadyBound
)

NamingContext を bind する

bind されるオブジェクトが NamingContext であることを除いて bind() と同じである。

引数
nameオブジェクトに付ける名前のネームコンポーネント
name_cxt関連付けられる NamingContext
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
AlreadyBoundname <c_n> の Object がすでにバインドされている。
void RTC::CorbaNaming::bindContext ( const char *  string_name,
CosNaming::NamingContext_ptr  name_cxt,
const bool  force = 1 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName,
AlreadyBound
)

NamingContext を bind する

bind されるオブジェクトが NamingContext であることを除いて bindByString() と同じである。

引数
string_nameオブジェクトに付ける名前の文字列表現
name_cxt関連付けられる NamingContext
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
AlreadyBoundname <n> の Object がすでにバインドされている。
void RTC::CorbaNaming::bindContextRecursive ( CosNaming::NamingContext_ptr  context,
const CosNaming::Name &  name,
CosNaming::NamingContext_ptr  name_cxt 
)

途中のコンテキストを再帰的に bind し NamingContext を bind する

bind されるオブジェクトが NamingContext であることを除いて bindRecursive() と同じである。

引数
contextbind を開始する NamingContext
nameオブジェクトに付ける名前のネームコンポーネント
name_cxt関連付けられる NamingContext
CosNaming::NamingContext_ptr RTC::CorbaNaming::bindNewContext ( const CosNaming::Name &  name,
bool  force = true 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName,
AlreadyBound
)

新しいコンテキストを bind する

与えられた name に対して新しいコンテキストをバインドする。 生成された NamingContext はネームサーバ上で生成されたものである。

引数
nameNamingContextに付ける名前のネームコンポーネント
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
戻り値
生成された新しい NamingContext
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
AlreadyBoundname <n> の Object がすでにバインドされている。
CosNaming::NamingContext_ptr RTC::CorbaNaming::bindNewContext ( const char *  string_name,
bool  force = true 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName,
AlreadyBound
)

新しいコンテキストを bind する

与えられた文字列に対応する新しいコンテキストをバインドする。 生成された NamingContext はネームサーバ上で生成されたものである。

引数
string_nameNamingContextに付ける名前の文字列表現
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
戻り値
生成された新しい NamingContext
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
AlreadyBoundname <n> の Object がすでにバインドされている。
CORBA::Object_ptr RTC::CorbaNaming::bindOrResolve ( CosNaming::NamingContext_ptr  context,
const CosNaming::Name &  name,
CORBA::Object_ptr  obj 
)

オブジェクトの名前をバインドまたは解決する

指定されたコンテキストに対してオブジェクトを NameComponent で指定された 位置にバインドする。 同一箇所に既に他の要素がバインド済みの場合は、既存のバインド済み要素を 取得する。

引数
contextbind もしくは resole 対象コンテキスト
nameオブジェクトに付ける名前の NameComponent
obj関連付けられる Object
戻り値
NameComponent で指定された位置にバインドされているオブジェクト
CosNaming::NamingContext_ptr RTC::CorbaNaming::bindOrResolveContext ( CosNaming::NamingContext_ptr  context,
const CosNaming::Name &  name,
CosNaming::NamingContext_ptr  new_context 
)

名前をバインドまたは解決する

指定されたコンテキストに対して Contextを NameComponent で指定された位置に バインドする。 同一箇所に既に他の要素がバインド済みの場合は、既存のバインド済み要素を 取得する。

引数
contextbind もしくは resole 対象コンテキスト
nameコンテキストに付ける名前の NameComponent
new_context関連付けられる Context
戻り値
NameComponent で指定された位置にバインドされているContext
CosNaming::NamingContext_ptr RTC::CorbaNaming::bindOrResolveContext ( CosNaming::NamingContext_ptr  context,
const CosNaming::Name &  name 
)

名前をバインドまたは解決する

指定されたコンテキストに対して NameComponent で指定された位置に 新規コンテキストをバインドする。 同一箇所に既に他の要素がバインド済みの場合は、既存のバインド済み要素を 取得する。

引数
contextbind もしくは resole 対象コンテキスト
name新規作成するコンテキストの位置を表す NameComponent
戻り値
NameComponent で指定された位置にバインドされているContext
void RTC::CorbaNaming::bindRecursive ( CosNaming::NamingContext_ptr  context,
const CosNaming::Name &  name,
CORBA::Object_ptr  obj 
)
throw (SystemException,
CannotProceed,
InvalidName,
AlreadyBound
)

途中のコンテキストを再帰的に bind しながら Object を bind する

context で与えられた NamingContext に対して、name で指定された ネームコンポーネント <c_1, ... c_(n-1)> を NamingContext として 解決しながら、名前 <c_n> に対して obj を bind する。 もし、<c_1, ... c_(n-1)> に対応する NamingContext がない場合には 新たな NamingContext をバインドする。

最終的に <c_1, c_2, ..., c_(n-1)> に対応する NamingContext が生成 または解決された上で、CosNaming::bind(<c_n>, object) が呼び出される。 このとき、すでにバインディングが存在すれば AlreadyBound例外が発生する。

途中のコンテキストを解決する過程で、解決しようとするコンテキストと 同じ名前の NamingContext ではない Binding が存在する場合、 CannotProceed 例外が発生し処理を中止する。

引数
contextbind を開始する NamingContext
nameオブジェクトに付ける名前のネームコンポーネント
obj関連付けられるオブジェクト
例外
CannotProceed<c_1, ..., c_(n-1)> に対応する NamingContext のうちひとつが、すでに NamingContext 以外の object にバインド されており、処理を継続できない。
InvalidName名前 name が不正
AlreadyBoundname <c_n> にすでに何らかの object がバインド されている。
void RTC::CorbaNaming::clearAll ( )

すべての Binding を削除する

登録されている全てのBinding を削除する。

void RTC::CorbaNaming::destroy ( CosNaming::NamingContext_ptr  context)
throw (SystemException,
NotEmpty
)

NamingContext を非アクティブ化する

context で指定された NamingContext を非アクティブ化する。 context に他のコンテキストがバインドされている場合は NotEmpty 例外が 発生する。

引数
context非アクティブ化する NamingContext
例外
NotEmpty対象context に他のコンテキストがバインドされている。
void RTC::CorbaNaming::destroyRecursive ( CosNaming::NamingContext_ptr  context)
throw (SystemException,
NotEmpty,
NotFound,
CannotProceed,
InvalidName
)

NamingContext を再帰的に下って非アクティブ化する

context で与えられた NamingContext に対して、name で指定された ネームコンポーネント <c_1, ... c_(n-1)> を NamingContext として 解決しながら、名前 <c_n> に対して 非アクティブ化を行う。

引数
context非アクティブ化する NamingContext
例外
NotEmpty対象context に他のコンテキストがバインドされている。
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
CORBA::ULong RTC::CorbaNaming::getNameLength ( const CosNaming::Name &  name)
protected

ネームコンポーネントの文字列表現時の文字長を取得する

指定したネームコンポーネントを文字列で表現した場合の長さを取得する。 文字列表現は、NameComponentの構成が{Nc[0],Nc[1],Nc[2]...}の場合、 Nc[0]id.Nc[0].kind/Nc[1]id.Nc[1].kind/Nc[2].id/Nc[2].kind... という形式で取得できる。

引数
name取得対象NameComponent
戻り値
指定したネームコンポーネントの文字列長さ
const char* RTC::CorbaNaming::getNameServer ( )

ネームサーバの名前を取得する

設定したネームサーバの名前を取得する。

戻り値
ネームサーバの名前
CosNaming::NamingContext_ptr RTC::CorbaNaming::getRootContext ( )

ルートコンテキストを取得する

設定したネームサーバのルートコンテキストを取得する。

戻り値
ネームサーバのルートコンテキスト
void RTC::CorbaNaming::init ( const char *  name_server)

ネーミングサービスの初期化

指定されたネームサーバ上のネーミングサービスを初期化します。

引数
name_serverネームサーバの名称

参照元 ~CorbaNaming().

bool RTC::CorbaNaming::isAlive ( )

参照元 ~CorbaNaming().

bool RTC::CorbaNaming::isNamingContext ( CORBA::Object_ptr  obj)

オブジェクトがネーミングコンテキストか判別する

指定した要素がネーミングコンテキストか判別する

引数
obj判別対象要素
戻り値
判別結果(ネーミングコンテキスト:true、それ以外:false)
bool RTC::CorbaNaming::isNamingContext ( const CosNaming::Name &  name)

与えられた名前がネーミングコンテキストかどうか

NameComponentで指定した要素がネーミングコンテキストか判別する

引数
name判別対象NameComponent
戻り値
判別結果(ネーミングコンテキスト:true、それ以外:false)
bool RTC::CorbaNaming::isNamingContext ( const char *  string_name)

与えられた名前がネーミングコンテキストかどうか

文字列で指定した要素がネーミングコンテキストか判別する

引数
string_name判別対象文字列
戻り値
判別結果(ネーミングコンテキスト:true、それ以外:false)
void RTC::CorbaNaming::list ( CosNaming::NamingContext_ptr  name_cxt,
CORBA::ULong  how_many,
CosNaming::BindingList_var &  bl,
CosNaming::BindingIterator_var &  bi 
)

与えられた NamingContext の Binding を取得する

指定された NamingContext の Binding を取得する。

引数
name_cxtBinding 取得対象 NamingContext
how_manyBinding を取得する階層の深さ
bl取得した Binding を保持するホルダ
bi取得した Binding をたどるためのイテレータ
void RTC::CorbaNaming::list ( const char *  string_name,
CosNaming::BindingList_var &  bl 
)

与えられた Naming パス以下のすべてのバインディングを取得する

文字列で指定されたネーミング絶対パス以下のすべてのバインディング すなわちバインディングのタイプと参照のセットを取得する。パスは、 ルートコンテキストから階層を "/"、名前とコンテキストを "." で区 切った文字列である。

例えば、<name0>.<context0>/.../<name[n]>.<context[n]> を指定する と<name[n]>.<context[n]> の下にバインドされているコンテキストま たはオブジェクトリファレンスのリストが BindingList として返され る。

引数
string_name[in] 文字列で指定されるターゲットのパス
bl[out] 指定されたパスの下のバインディングリスト
void RTC::CorbaNaming::listByKind ( const char *  string_name,
const char *  string_kind,
CosNaming::BindingList_var &  bl 
)

与えられたパス以下の指定されたkindのバインディングを取得する

文字列で指定されたネーミング絶対パス以下のうち、指定された kind を持つすべてのバインディングを取得する。パスは、ルートコンテキス トから階層を "/"、名前とコンテキストを "." で区切った文字列であ る。

例えば、第1引数にパス <name0>.<context0>/.../<name[n]>.<context[n]> を指定し、第2引数 の kind "hoge" を指定すると、と<name[n]>.<context[n]> の下にバイ ンドされているコンテキストまたはオブジェクトリファレンスのリスト のうち kind が "hoge" のものが BindingList として返される。

例えば、<name0>.<context0>/.../<name[n]>.<context[n]> を指定する と<name[n]>.<context[n]> の下にバインドされているコンテキストま たはオブジェクトリファレンスのリストが BindingList として返され る。

引数
string_name[in] 文字列で指定されるターゲットのパス
string_kind[in] 文字列で指定されるターゲットのkind
bl[out] 指定されたパスの下のバインディングリスト
void RTC::CorbaNaming::nameToString ( const CosNaming::Name &  name,
char *  string_name,
CORBA::ULong  slen 
)
protected

ネームコンポーネントの文字列表現を取得する

指定した範囲のネームコンポーネントの文字列表現を取得する。 文字列表現は、NameComponentの構成が{Nc[0], Nc[1], Nc[2]...}の場合、 Nc[0]id.Nc[0].kind/Nc[1]id.Nc[1].kind/Nc[2].id/Nc[2].kind... という形式で取得できる。 取得した文字列の長さが指定した長さ以上の場合は、 指定した長さで切り捨てられる。

引数
name取得対象NameComponent
string_name取得結果文字列
slen取得対象文字列最大値
CosNaming::NamingContext_ptr RTC::CorbaNaming::newContext ( )

新しいコンテキストを生成する

与えられたネームサーバ上で生成された NamingContext を返す。 返された NamingContext は bind されていない。

戻り値
生成された新しい NamingContext
void RTC::CorbaNaming::rebind ( const CosNaming::Name &  name,
CORBA::Object_ptr  obj,
const bool  force = 1 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName
)

Object を rebind する

name で指定された Binding がすでに存在する場合を除いて bind() と同じ である。バインディングがすでに存在する場合には、新しいバインディングに 置き換えられる。

引数
nameオブジェクトに付ける名前の NameComponent
obj関連付けられるオブジェクト
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName名前 name が不正
void RTC::CorbaNaming::rebindByString ( const char *  string_name,
CORBA::Object_ptr  obj,
const bool  force = 1 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName
)

Object を rebind する

Object を rebind する際に与える名前が文字列表現であること以外は rebind() と同じである。rebind(toName(string_name), obj) と等価。

引数
string_nameオブジェクトに付ける名前の文字列表現
obj関連付けられるオブジェクト
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
void RTC::CorbaNaming::rebindContext ( const CosNaming::Name &  name,
CosNaming::NamingContext_ptr  name_cxt,
const bool  force = 1 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName
)

NamingContext を rebind する

name で指定されたコンテキストがすでに存在する場合を除いて bindContext() と同じである。 バインディングがすでに存在する場合には、新しいバインディングに 置き換えられる。

引数
nameオブジェクトに付ける名前のネームコンポーネント
name_cxt関連付けられる NamingContext
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
void RTC::CorbaNaming::rebindContext ( const char *  string_name,
CosNaming::NamingContext_ptr  name_cxt,
const bool  force = 1 
)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName
)

NamingContext を rebind する

name で指定されたコンテキストがすでに存在する場合を除いて bindContext() と同じである。 バインディングがすでに存在する場合には、新しいバインディングに 置き換えられる。

引数
string_nameオブジェクトに付ける名前の文字列表現
name_cxt関連付けられる NamingContext
forcetrueの場合、途中のコンテキストを強制的にバインドする (デフォルト値:true)
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
void RTC::CorbaNaming::rebindContextRecursive ( CosNaming::NamingContext_ptr  context,
const CosNaming::Name &  name,
CosNaming::NamingContext_ptr  name_cxt 
)

途中のコンテキストを再帰的に rebind し NamingContext を rebind する

bind されるオブジェクトが NamingContext であることを除いて rebindRecursive() と同じである。

引数
contextbind を開始する NamingContext
nameオブジェクトに付ける名前の NameComponent
name_cxt関連付けられる NamingContext
void RTC::CorbaNaming::rebindRecursive ( CosNaming::NamingContext_ptr  context,
const CosNaming::Name &  name,
CORBA::Object_ptr  obj 
)
throw (SystemException,
CannotProceed,
InvalidName
)

途中のコンテキストを bind しながら Object を rebind する

name <c_n> で指定された NamingContext もしくは Object がすでに存在する 場合を除いて bindRecursive() と同じである。

name <c_n> で指定されたバインディングがすでに存在する場合には、 新しいバインディングに置き換えられる。

引数
contextbind を開始する NamingContext
nameオブジェクトに付ける名前の NameComponent
obj関連付けられるオブジェクト
例外
CannotProceed途中のコンテキストが解決できない。
InvalidName与えられた name が不正。
CORBA::Object_ptr RTC::CorbaNaming::resolve ( const CosNaming::Name &  name)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName
)

与えられた NameComponent にバインドされている Object を返す

name に bind されているオブジェクト参照を返す。 ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決される。

CosNaming::resolve() とほぼ同等の働きをするが、常に与えられた ネームサーバのルートコンテキストに対して resolve() が呼び出される点が 異なる。

引数
name解決すべきオブジェクトの名前のネームコンポーネント
戻り値
解決されたオブジェクト参照
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
CORBA::Object_ptr RTC::CorbaNaming::resolve ( const char *  string_name)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName
)

与えられた NameComponent にバインドされている Object を返す

name に bind されているオブジェクト参照を返す。 ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決される。

CosNaming::resolve() とほぼ同等の働きをするが、常に与えられた ネームサーバのルートコンテキストに対して resolve() が呼び出される点が 異なる。

引数
string_name解決すべきオブジェクトの名前の文字列表現
戻り値
解決されたオブジェクト参照
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
CORBA::Object_ptr RTC::CorbaNaming::resolveStr ( const char *  string_name)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName,
AlreadyBound
)

与えられた文字列表現を resolve しオブジェクトを返す

指定された文字列表現をresolveし,オブジェクトを取得する。

引数
string_name取得対象オブジェクト文字列表現
戻り値
解決されたオブジェクト
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
AlreadyBoundname <n> の Object がすでにバインドされている。
unsigned int RTC::CorbaNaming::split ( const std::string &  input,
const std::string &  delimiter,
std::vector< std::string > &  results 
)
protected

文字列の分割

文字列を指定したデリミタで分割する。

引数
input分割対象文字列
delimiter分割用デリミタ
results分割結果
戻り値
分割した文字列の要素数
CosNaming::Name RTC::CorbaNaming::subName ( const CosNaming::Name &  name,
CORBA::Long  begin,
CORBA::Long  end = -1 
)

ネームコンポーネントの部分を返す

指定された範囲のネームコンポーネントを取得する。 終了位置が指定されていない場合は、最後の要素を除いたネームコンポーネント を返す。

引数
name検索対象NameComponent
begin取得範囲開始位置
end取得範囲終了位置(デフォルト値:-1)
戻り値
NameComponent 取得結果
CosNaming::Name RTC::CorbaNaming::toName ( const char *  string_name)
throw (SystemException,
InvalidName
)

与えられた文字列表現を NameComponent に分解する

指定された文字列を NameComponent に変換する。

引数
string_name変換対象文字列
戻り値
NameComponent 変換結果
例外
InvalidName引数 string_name が不正。
char* RTC::CorbaNaming::toString ( const CosNaming::Name &  name)
throw (SystemException,
InvalidName
)

与えられた NameComponent の文字列表現を返す

指定された NameComponent を文字に変換する。

引数
name変換対象 NameComponent
戻り値
文字列変換結果
例外
InvalidName引数 name の名前が不正。
char* RTC::CorbaNaming::toUrl ( char *  addr,
char *  string_name 
)
throw (SystemException,
InvalidAddress,
InvalidName
)

与えられた addre と string_name から URL表現を取得する

指定されたアドレスと名称をURLに変換する。

引数
addr変換対象アドレス
string_name変換対象名称
戻り値
URL 変換結果
例外
InvalidAddress引数 addr が不正。
InvalidName引数 string_name が不正。
void RTC::CorbaNaming::unbind ( const CosNaming::Name &  name)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName
)

与えられた NameComponent のバインディングを削除する

name に bind されているオブジェクト参照を返す。 ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決される。

CosNaming::unbind() とほぼ同等の働きをするが、常に与えられた ネームサーバのルートコンテキストに対して unbind() が呼び出される点が 異なる。

引数
name削除するオブジェクトのネームコンポーネント
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。
void RTC::CorbaNaming::unbind ( const char *  string_name)
throw (SystemException,
NotFound,
CannotProceed,
InvalidName
)

与えられた NameComponent のバインディングを削除する

name に bind されているオブジェクト参照を返す。 ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決される。

CosNaming::unbind() とほぼ同等の働きをするが、常に与えられた ネームサーバのルートコンテキストに対して unbind() が呼び出される点が 異なる。

引数
string_name解決すべきオブジェクトの名前の文字列表現
戻り値
解決されたオブジェクト参照
例外
NotFound途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
CannotProceed何らかの理由で処理を継続できない。
InvalidName引数 name の名前が不正。

メンバ詳解

std::string RTC::CorbaNaming::m_nameServer
protected

ネームサーバ名称

CORBA::ORB_ptr RTC::CorbaNaming::m_ptrORB
protected

ORB.

CosNaming::NamingContextExt_var RTC::CorbaNaming::m_rootContext
protected

指定したネームサーバのルートコンテキスト


このクラス詳解は次のファイルから抽出されました: