OpenRTM-aist-Python 2.0.2
OpenRTM_aist.CorbaNaming.CorbaNaming クラス

[詳解]

公開メンバ関数

 __init__ (self, orb, name_server=None)
 
 __del__ (self)
 
 init (self, name_server)
 
 isAlive (self)
 
 bind (self, name_list, obj, force=None)
 
 bindByString (self, string_name, obj, force=True)
 
 bindRecursive (self, context, name_list, obj)
 
 rebind (self, name_list, obj, force=True)
 
 rebindByString (self, string_name, obj, force=True)
 
 rebindRecursive (self, context, name_list, obj)
 
 bindContext (self, name, name_cxt, force=True)
 
 bindContextRecursive (self, context, name_list, name_cxt)
 
 rebindContext (self, name, name_cxt, force=True)
 
 rebindContextRecursive (self, context, name_list, name_cxt)
 
 resolve (self, name)
 
 unbind (self, name)
 
 newContext (self)
 
 bindNewContext (self, name, force=True)
 
 destroy (self, context)
 
 destroyRecursive (self, context)
 
 clearAll (self)
 
 list (self, name_cxt, how_many, rbl, rbi)
 
 toString (self, name_list)
 
 toName (self, sname)
 
 toUrl (self, addr, string_name)
 
 resolveStr (self, string_name)
 
 bindOrResolve (self, context, name_list, obj)
 
 bindOrResolveContext (self, context, name_list, new_context=None)
 
 getNameServer (self)
 
 getRootContext (self)
 
 objIsNamingContext (self, obj)
 
 nameIsNamingContext (self, name_list)
 
 subName (self, name_list, begin, end=None)
 
 nameToString (self, name_list, string_name, slen)
 
 getNameLength (self, name_list)
 
 split (self, input, delimiter, results)
 
 listByKind (self, string_name, string_kind)
 
 listBinding (self, string_name)
 

詳解

CORBA Naming Service ヘルパークラス

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

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

から
0.4.0

構築子と解体子

◆ __init__()

OpenRTM_aist.CorbaNaming.CorbaNaming.__init__ ( self,
orb,
name_server = None )

コンストラクタ

引数
self
orbORB
name_serverネームサーバの名称(デフォルト値:None)

◆ __del__()

OpenRTM_aist.CorbaNaming.CorbaNaming.__del__ ( self)

デストラクタ

引数
self

メソッド詳解

◆ bind()

OpenRTM_aist.CorbaNaming.CorbaNaming.bind ( self,
name_list,
obj,
force = None )

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 例外が発生する。

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

◆ bindByString()

OpenRTM_aist.CorbaNaming.CorbaNaming.bindByString ( self,
string_name,
obj,
force = True )

Object を bind する

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

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

◆ bindContext()

OpenRTM_aist.CorbaNaming.CorbaNaming.bindContext ( self,
name,
name_cxt,
force = True )

NamingContext を bind する

bind 対象として指定された引数 name が文字列の場合は bindByString() と、 それ以外の場合は bind() と同じである。

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

◆ bindContextRecursive()

OpenRTM_aist.CorbaNaming.CorbaNaming.bindContextRecursive ( self,
context,
name_list,
name_cxt )

NamingContext を bind する

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

引数
self
contextbind を開始する NamingContext
name_listオブジェクトに付ける名前のネームコンポーネント
name_cxt関連付けられる NamingContext

◆ bindNewContext()

OpenRTM_aist.CorbaNaming.CorbaNaming.bindNewContext ( self,
name,
force = True )

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

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

引数 name に与えられた値が文字列の場合にはまず最初に toName() によって NameComponent に変換される。

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

◆ bindOrResolve()

OpenRTM_aist.CorbaNaming.CorbaNaming.bindOrResolve ( self,
context,
name_list,
obj )

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

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

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

◆ bindOrResolveContext()

OpenRTM_aist.CorbaNaming.CorbaNaming.bindOrResolveContext ( self,
context,
name_list,
new_context = None )

コンテキストの名前をバインドまたは解決する

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

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

◆ bindRecursive()

OpenRTM_aist.CorbaNaming.CorbaNaming.bindRecursive ( self,
context,
name_list,
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 例外が発生し処理を中止する。

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

◆ clearAll()

OpenRTM_aist.CorbaNaming.CorbaNaming.clearAll ( self)

すべての Binding を削除する

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

引数
self

◆ destroy()

OpenRTM_aist.CorbaNaming.CorbaNaming.destroy ( self,
context )

NamingContext を非アクティブ化する

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

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

◆ destroyRecursive()

OpenRTM_aist.CorbaNaming.CorbaNaming.destroyRecursive ( self,
context )

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

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

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

◆ getNameLength()

OpenRTM_aist.CorbaNaming.CorbaNaming.getNameLength ( self,
name_list )

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

指定したネームコンポーネントを文字列で表現した場合の長さを取得する。 文字列表現は、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・・・ という形式で取得できる。

引数
self
name_list取得対象NameComponent
戻り値
指定したネームコンポーネントの文字列長さ

◆ getNameServer()

OpenRTM_aist.CorbaNaming.CorbaNaming.getNameServer ( self)

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

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

引数
self
戻り値
ネームサーバの名前

◆ getRootContext()

OpenRTM_aist.CorbaNaming.CorbaNaming.getRootContext ( self)

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

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

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

◆ init()

OpenRTM_aist.CorbaNaming.CorbaNaming.init ( self,
name_server )

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

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

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

◆ isAlive()

OpenRTM_aist.CorbaNaming.CorbaNaming.isAlive ( self)

ルートコンテキストが生存しているかを返す。

ルートコンテキストが生存しているかのチェックを行う。

引数
selfbool CorbaNaming.isAlive()

◆ list()

OpenRTM_aist.CorbaNaming.CorbaNaming.list ( self,
name_cxt,
how_many,
rbl,
rbi )

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

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

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

◆ listBinding()

OpenRTM_aist.CorbaNaming.CorbaNaming.listBinding ( self,
string_name )

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

引数
self
string_nameNamingパス
戻り値
バインディングのリスト BindingList_var list(const char* string_name)

◆ listByKind()

OpenRTM_aist.CorbaNaming.CorbaNaming.listByKind ( self,
string_name,
string_kind )

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

引数
self
string_nameパス
string_kindkind
戻り値
バインディングのリスト BindingList_var listByKind(const char* string_name,const char* string_kind)

◆ nameIsNamingContext()

OpenRTM_aist.CorbaNaming.CorbaNaming.nameIsNamingContext ( self,
name_list )

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

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

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

◆ nameToString()

OpenRTM_aist.CorbaNaming.CorbaNaming.nameToString ( self,
name_list,
string_name,
slen )

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

指定した範囲のネームコンポーネントの文字列表現を取得する。 文字列表現は、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・・・ という形式で取得できる。 取得した文字列の長さが指定した長さ以上の場合は、 指定した長さで切り捨てられる。

引数
self
name_list取得対象NameComponent
string_name取得結果文字列
slen取得対象文字列最大値

◆ newContext()

OpenRTM_aist.CorbaNaming.CorbaNaming.newContext ( self)

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

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

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

◆ objIsNamingContext()

OpenRTM_aist.CorbaNaming.CorbaNaming.objIsNamingContext ( self,
obj )

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

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

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

◆ rebind()

OpenRTM_aist.CorbaNaming.CorbaNaming.rebind ( self,
name_list,
obj,
force = True )

Object を rebind する

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

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

◆ rebindByString()

OpenRTM_aist.CorbaNaming.CorbaNaming.rebindByString ( self,
string_name,
obj,
force = True )

Object を rebind する

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

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

◆ rebindContext()

OpenRTM_aist.CorbaNaming.CorbaNaming.rebindContext ( self,
name,
name_cxt,
force = True )

NamingContext を rebind する

bind 対象として指定された引数 name が文字列の場合は rebindByString() と、 それ以外の場合は rebind() と同じである。 どちらの場合もバインディングがすでに存在する場合には、 新しいバインディングに置き換えられる。

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

◆ rebindContextRecursive()

OpenRTM_aist.CorbaNaming.CorbaNaming.rebindContextRecursive ( self,
context,
name_list,
name_cxt )

途中のコンテキストを再帰的に rebind し NamingContext を rebind する # bind されるオブジェクトが NamingContext であることを除いて rebindRecursive() と同じである。

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

◆ rebindRecursive()

OpenRTM_aist.CorbaNaming.CorbaNaming.rebindRecursive ( self,
context,
name_list,
obj )

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

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

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

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

◆ resolve()

OpenRTM_aist.CorbaNaming.CorbaNaming.resolve ( self,
name )

Object を name から解決する

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

引数 name に与えられた値が文字列の場合にはまず最初に toName() によって NameComponent に変換される。

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

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

◆ resolveStr()

OpenRTM_aist.CorbaNaming.CorbaNaming.resolveStr ( self,
string_name )

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

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

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

◆ split()

OpenRTM_aist.CorbaNaming.CorbaNaming.split ( self,
input,
delimiter,
results )

文字列の分割

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

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

◆ subName()

OpenRTM_aist.CorbaNaming.CorbaNaming.subName ( self,
name_list,
begin,
end = None )

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

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

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

◆ toName()

OpenRTM_aist.CorbaNaming.CorbaNaming.toName ( self,
sname )

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

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

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

◆ toString()

OpenRTM_aist.CorbaNaming.CorbaNaming.toString ( self,
name_list )

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

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

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

◆ toUrl()

OpenRTM_aist.CorbaNaming.CorbaNaming.toUrl ( self,
addr,
string_name )

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

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

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

◆ unbind()

OpenRTM_aist.CorbaNaming.CorbaNaming.unbind ( self,
name )

指定された名前のオブジェクトの bind を解除する

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

引数 name に与えられた値が文字列の場合にはまず最初に toName() によって NameComponent に変換される。

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

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

void unbind(const CosNaming.Name& name) throw(NotFound, CannotProceed, InvalidName);


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