OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
RTC::CorbaNaming クラス

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

#include <CorbaNaming.h>

公開型

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

公開メンバ関数

 CorbaNaming (CORBA::ORB_ptr orb)
 コンストラクタ
 
 CorbaNaming (CORBA::ORB_ptr orb, const char *name_server)
 コンストラクタ
 
virtual ~CorbaNaming ()
 仮想デストラクタ
 
void init (const char *name_server)
 ネーミングサービスの初期化
 
bool isAlive ()
 
void bind (const CosNaming::Name &name, CORBA::Object_ptr obj, bool force=true)
 Object を bind する
 
void bindByString (const char *string_name, CORBA::Object_ptr obj, bool force=true)
 Object を bind する
 
void bindRecursive (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj)
 途中のコンテキストを再帰的に bind しながら Object を bind する
 
void rebind (const CosNaming::Name &name, CORBA::Object_ptr obj, bool force=true)
 Object を rebind する
 
void rebindByString (const char *string_name, CORBA::Object_ptr obj, bool force=true)
 Object を rebind する
 
void bindContext (const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt, bool force=true)
 NamingContext を bind する
 
void bindContext (const char *string_name, CosNaming::NamingContext_ptr name_cxt, bool force=true)
 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, bool force=true)
 NamingContext を rebind する
 
void rebindContext (const char *string_name, CosNaming::NamingContext_ptr name_cxt, bool force=true)
 NamingContext を rebind する
 
CORBA::Object_ptr resolve (const CosNaming::Name &name)
 与えられた NameComponent にバインドされている Object を返す
 
CORBA::Object_ptr resolve (const char *string_name)
 与えられた NameComponent にバインドされている Object を返す
 
void unbind (const CosNaming::Name &name)
 与えられた NameComponent のバインディングを削除する
 
void unbind (const char *string_name)
 与えられた NameComponent のバインディングを削除する
 
CosNaming::NamingContext_ptr newContext ()
 新しいコンテキストを生成する
 
CosNaming::NamingContext_ptr bindNewContext (const CosNaming::Name &name, bool force=true)
 新しいコンテキストを bind する
 
CosNaming::NamingContext_ptr bindNewContext (const char *string_name, bool force=true)
 新しいコンテキストを bind する
 
void destroyRecursive (CosNaming::NamingContext_ptr context)
 NamingContext を再帰的に下って非アクティブ化する
 
void clearAll ()
 すべての 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 * toUrl (char *addr, char *string_name)
 与えられた addre と string_name から URL表現を取得する
 
CORBA::Object_ptr resolveStr (const char *string_name)
 与えられた文字列表現を resolve しオブジェクトを返す
 
CosNaming::NamingContext_ptr bindOrResolveContext (CosNaming::NamingContext_ptr context, const CosNaming::Name &name)
 名前をバインドまたは解決する
 
const char * getNameServer ()
 ネームサーバの名前を取得する
 
CosNaming::NamingContext_ptr getRootContext ()
 ルートコンテキストを取得する
 
bool isNamingContext (const CosNaming::Name &name)
 与えられた名前がネーミングコンテキストかどうか
 
bool isNamingContext (const char *string_name)
 与えられた名前がネーミングコンテキストかどうか
 

静的公開メンバ関数

static void rebindRecursive (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj)
 途中のコンテキストを bind しながら Object を rebind する
 
static void rebindContextRecursive (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt)
 途中のコンテキストを再帰的に rebind し NamingContext を rebind する
 
static void destroy (CosNaming::NamingContext_ptr context)
 NamingContext を非アクティブ化する
 
static void list (CosNaming::NamingContext_ptr name_cxt, CORBA::ULong how_many, CosNaming::BindingList_var &bl, CosNaming::BindingIterator_var &bi)
 与えられた NamingContext の Binding を取得する
 
static char * toString (const CosNaming::Name &name)
 与えられた NameComponent の文字列表現を返す
 
static CosNaming::Name toName (const char *sname)
 与えられた文字列表現を NameComponent に分解する
 
static CORBA::Object_ptr bindOrResolve (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj)
 オブジェクトの名前をバインドまたは解決する
 
static CosNaming::NamingContext_ptr bindOrResolveContext (CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CosNaming::NamingContext_ptr new_context)
 名前をバインドまたは解決する
 
static bool isNamingContext (CORBA::Object_ptr obj)
 オブジェクトがネーミングコンテキストか判別する
 
static CosNaming::Name subName (const CosNaming::Name &name, CORBA::Long begin, CORBA::Long end=-1)
 ネームコンポーネントの部分を返す
 

静的限定公開メンバ関数

static void nameToString (const CosNaming::Name &name, char *string_name, CORBA::ULong slen)
 ネームコンポーネントの文字列表現を取得する
 
static CORBA::ULong getNameLength (const CosNaming::Name &name)
 ネームコンポーネントの文字列表現時の文字長を取得する
 
static 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

型定義メンバ詳解

◆ AlreadyBound

using RTC::CorbaNaming::AlreadyBound = CosNaming::NamingContext::AlreadyBound

◆ CannotProceed

using RTC::CorbaNaming::CannotProceed = CosNaming::NamingContext::CannotProceed

◆ InvalidAddress

using RTC::CorbaNaming::InvalidAddress = CosNaming::NamingContextExt::InvalidAddress

◆ InvalidName

using RTC::CorbaNaming::InvalidName = CosNaming::NamingContext::InvalidName

◆ NotEmpty

using RTC::CorbaNaming::NotEmpty = CosNaming::NamingContext::NotEmpty

◆ NotFound

using RTC::CorbaNaming::NotFound = CosNaming::NamingContext::NotFound

◆ ObjectList

using RTC::CorbaNaming::ObjectList = std::vector<CORBA::Object_ptr>

◆ SystemException

using RTC::CorbaNaming::SystemException = CORBA::SystemException

構築子と解体子

◆ CorbaNaming() [1/2]

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

コンストラクタ

引数
orbORB

◆ CorbaNaming() [2/2]

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

コンストラクタ

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

◆ ~CorbaNaming()

virtual RTC::CorbaNaming::~CorbaNaming ( )
virtual

仮想デストラクタ

関数詳解

◆ bind()

void RTC::CorbaNaming::bind ( const CosNaming::Name & name,
CORBA::Object_ptr obj,
bool force = true )

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 がすでにバインドされている。

◆ bindByString()

void RTC::CorbaNaming::bindByString ( const char * string_name,
CORBA::Object_ptr obj,
bool force = true )

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 がすでにバインドされている。

◆ bindContext() [1/2]

void RTC::CorbaNaming::bindContext ( const char * string_name,
CosNaming::NamingContext_ptr name_cxt,
bool force = true )

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 がすでにバインドされている。

◆ bindContext() [2/2]

void RTC::CorbaNaming::bindContext ( const CosNaming::Name & name,
CosNaming::NamingContext_ptr name_cxt,
bool force = true )

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 がすでにバインドされている。

◆ bindContextRecursive()

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

◆ bindNewContext() [1/2]

CosNaming::NamingContext_ptr RTC::CorbaNaming::bindNewContext ( const char * string_name,
bool force = true )

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

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

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

◆ bindNewContext() [2/2]

CosNaming::NamingContext_ptr RTC::CorbaNaming::bindNewContext ( const CosNaming::Name & name,
bool force = true )

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

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

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

◆ bindOrResolve()

static CORBA::Object_ptr RTC::CorbaNaming::bindOrResolve ( CosNaming::NamingContext_ptr context,
const CosNaming::Name & name,
CORBA::Object_ptr obj )
static

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

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

引数
contextbind もしくは resole 対象コンテキスト
nameオブジェクトに付ける名前の NameComponent
obj関連付けられる Object
戻り値
NameComponent で指定された位置にバインドされているオブジェクト

◆ bindOrResolveContext() [1/2]

CosNaming::NamingContext_ptr RTC::CorbaNaming::bindOrResolveContext ( CosNaming::NamingContext_ptr context,
const CosNaming::Name & name )

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

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

引数
contextbind もしくは resole 対象コンテキスト
name新規作成するコンテキストの位置を表す NameComponent
戻り値
NameComponent で指定された位置にバインドされているContext

◆ bindOrResolveContext() [2/2]

static CosNaming::NamingContext_ptr RTC::CorbaNaming::bindOrResolveContext ( CosNaming::NamingContext_ptr context,
const CosNaming::Name & name,
CosNaming::NamingContext_ptr new_context )
static

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

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

引数
contextbind もしくは resole 対象コンテキスト
nameコンテキストに付ける名前の NameComponent
new_context関連付けられる Context
戻り値
NameComponent で指定された位置にバインドされているContext

◆ bindRecursive()

void RTC::CorbaNaming::bindRecursive ( CosNaming::NamingContext_ptr context,
const CosNaming::Name & name,
CORBA::Object_ptr obj )

途中のコンテキストを再帰的に 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 がバインド されている。

◆ clearAll()

void RTC::CorbaNaming::clearAll ( )

すべての Binding を削除する

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

◆ destroy()

static void RTC::CorbaNaming::destroy ( CosNaming::NamingContext_ptr context)
static

NamingContext を非アクティブ化する

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

引数
context非アクティブ化する NamingContext
例外
NotEmpty対象context に他のコンテキストがバインドされている。

◆ destroyRecursive()

void RTC::CorbaNaming::destroyRecursive ( CosNaming::NamingContext_ptr context)

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 の名前が不正。

◆ getNameLength()

static CORBA::ULong RTC::CorbaNaming::getNameLength ( const CosNaming::Name & name)
staticprotected

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

指定したネームコンポーネントを文字列で表現した場合の長さを取得する。 文字列表現は、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
戻り値
指定したネームコンポーネントの文字列長さ

◆ getNameServer()

const char * RTC::CorbaNaming::getNameServer ( )

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

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

戻り値
ネームサーバの名前

◆ getRootContext()

CosNaming::NamingContext_ptr RTC::CorbaNaming::getRootContext ( )

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

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

戻り値
ネームサーバのルートコンテキスト

◆ init()

void RTC::CorbaNaming::init ( const char * name_server)

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

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

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

◆ isAlive()

bool RTC::CorbaNaming::isAlive ( )

◆ isNamingContext() [1/3]

bool RTC::CorbaNaming::isNamingContext ( const char * string_name)

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

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

引数
string_name判別対象文字列
戻り値
判別結果(ネーミングコンテキスト:true、それ以外:false)

◆ isNamingContext() [2/3]

bool RTC::CorbaNaming::isNamingContext ( const CosNaming::Name & name)

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

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

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

◆ isNamingContext() [3/3]

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

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

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

引数
obj判別対象要素
戻り値
判別結果(ネーミングコンテキスト:true、それ以外:false)

◆ list() [1/2]

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] 指定されたパスの下のバインディングリスト

◆ list() [2/2]

static void RTC::CorbaNaming::list ( CosNaming::NamingContext_ptr name_cxt,
CORBA::ULong how_many,
CosNaming::BindingList_var & bl,
CosNaming::BindingIterator_var & bi )
static

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

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

引数
name_cxtBinding 取得対象 NamingContext
how_manyBinding を取得する階層の深さ
bl取得した Binding を保持するホルダ
bi取得した Binding をたどるためのイテレータ

◆ listByKind()

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] 指定されたパスの下のバインディングリスト

◆ nameToString()

static void RTC::CorbaNaming::nameToString ( const CosNaming::Name & name,
char * string_name,
CORBA::ULong slen )
staticprotected

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

指定した範囲のネームコンポーネントの文字列表現を取得する。 文字列表現は、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取得対象文字列最大値

◆ newContext()

CosNaming::NamingContext_ptr RTC::CorbaNaming::newContext ( )

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

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

戻り値
生成された新しい NamingContext

◆ rebind()

void RTC::CorbaNaming::rebind ( const CosNaming::Name & name,
CORBA::Object_ptr obj,
bool force = true )

Object を rebind する

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

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

◆ rebindByString()

void RTC::CorbaNaming::rebindByString ( const char * string_name,
CORBA::Object_ptr obj,
bool force = true )

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 の名前が不正。

◆ rebindContext() [1/2]

void RTC::CorbaNaming::rebindContext ( const char * string_name,
CosNaming::NamingContext_ptr name_cxt,
bool force = true )

NamingContext を rebind する

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

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

◆ rebindContext() [2/2]

void RTC::CorbaNaming::rebindContext ( const CosNaming::Name & name,
CosNaming::NamingContext_ptr name_cxt,
bool force = true )

NamingContext を rebind する

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

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

◆ rebindContextRecursive()

static void RTC::CorbaNaming::rebindContextRecursive ( CosNaming::NamingContext_ptr context,
const CosNaming::Name & name,
CosNaming::NamingContext_ptr name_cxt )
static

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

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

引数
contextbind を開始する NamingContext
nameオブジェクトに付ける名前の NameComponent
name_cxt関連付けられる NamingContext

◆ rebindRecursive()

static void RTC::CorbaNaming::rebindRecursive ( CosNaming::NamingContext_ptr context,
const CosNaming::Name & name,
CORBA::Object_ptr obj )
static

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

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

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

引数
contextbind を開始する NamingContext
nameオブジェクトに付ける名前の NameComponent
obj関連付けられるオブジェクト
例外
CannotProceed途中のコンテキストが解決できない。
InvalidName与えられた name が不正。

◆ resolve() [1/2]

CORBA::Object_ptr RTC::CorbaNaming::resolve ( const char * string_name)

与えられた 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 の名前が不正。

◆ resolve() [2/2]

CORBA::Object_ptr RTC::CorbaNaming::resolve ( const CosNaming::Name & name)

与えられた 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 の名前が不正。

◆ resolveStr()

CORBA::Object_ptr RTC::CorbaNaming::resolveStr ( const char * string_name)

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

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

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

◆ split()

static unsigned int RTC::CorbaNaming::split ( const std::string & input,
const std::string & delimiter,
std::vector< std::string > & results )
staticprotected

文字列の分割

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

引数
input分割対象文字列
delimiter分割用デリミタ
results分割結果
戻り値
分割した文字列の要素数

◆ subName()

static CosNaming::Name RTC::CorbaNaming::subName ( const CosNaming::Name & name,
CORBA::Long begin,
CORBA::Long end = -1 )
static

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

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

引数
name検索対象NameComponent
begin取得範囲開始位置
end取得範囲終了位置(デフォルト値:-1)
戻り値
NameComponent 取得結果

◆ toName()

static CosNaming::Name RTC::CorbaNaming::toName ( const char * sname)
static

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

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

引数
string_name変換対象文字列
戻り値
NameComponent 変換結果
例外
InvalidName引数 string_name が不正。

◆ toString()

static char * RTC::CorbaNaming::toString ( const CosNaming::Name & name)
static

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

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

引数
name変換対象 NameComponent
戻り値
文字列変換結果
例外
InvalidName引数 name の名前が不正。

◆ toUrl()

char * RTC::CorbaNaming::toUrl ( char * addr,
char * string_name )

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

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

引数
addr変換対象アドレス
string_name変換対象名称
戻り値
URL 変換結果
例外
InvalidAddress引数 addr が不正。
InvalidName引数 string_name が不正。

◆ unbind() [1/2]

void RTC::CorbaNaming::unbind ( const char * string_name)

与えられた 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 の名前が不正。

◆ unbind() [2/2]

void RTC::CorbaNaming::unbind ( const CosNaming::Name & name)

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

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

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

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

メンバ詳解

◆ m_nameServer

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

ネームサーバ名称

◆ m_ptrORB

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

ORB

◆ m_rootContext

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

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


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