SdoConfiguration.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # -*- coding: euc-jp -*-
00003 
00004 ##
00005 # @file SdoConfiguration.py
00006 # @brief RT component base class
00007 # @date $Date: 2007/09/06$
00008 # @author Noriaki Ando <n-ando@aist.go.jp> and Shinji Kurihara
00009 #
00010 # Copyright (C) 2006-2008
00011 #     Task-intelligence Research Group,
00012 #     Intelligent Systems Research Institute,
00013 #     National Institute of
00014 #         Advanced Industrial Science and Technology (AIST), Japan
00015 #     All rights reserved.
00016 
00017 import sys
00018 import copy
00019 import threading
00020 
00021 import OpenRTM_aist
00022 ##
00023 # @if jp
00024 # @namespace SDOPackage
00025 #
00026 # @brief SDO パッケージ
00027 #
00028 # @else
00029 #
00030 # @namespace SDOPackage
00031 #
00032 # @endif
00033 import SDOPackage, SDOPackage__POA
00034 
00035 
00036 
00037 # SdoConfiguration with SeqEx 159120
00038 # SdoConfiguration with SeqUtil 114504 114224
00039 
00040 
00041 ##
00042 # @if jp
00043 # 
00044 # @brief NVList を Properties へコピーする
00045 # 
00046 # このオペレーションは NVList を Properties へコピーする。
00047 # 
00048 # @param prop NVList の値を格納する Properties
00049 # @param nv コピー元の NVList
00050 # 
00051 # @else
00052 # 
00053 # @brief Copy to Proeprties from NVList
00054 # 
00055 # This operation copies NVList to Properties.
00056 # 
00057 # @param prop Properties to store NVList values
00058 # @param nv NVList that is copies from
00059 # 
00060 # @endif
00061 def toProperties(prop, conf):
00062   OpenRTM_aist.NVUtil.copyToProperties(prop, conf.configuration_data)
00063 
00064 
00065 ##
00066 # @if jp
00067 # 
00068 # @brief Properties を NVList へコピーする
00069 # 
00070 # このオペレーションは Properties を NVList へコピーする。
00071 # NVList の value は全て CORBA::string 型としてコピーする。
00072 # 
00073 # @param nv Properties の値を格納する NVList
00074 # @param prop コピー元の Properties
00075 # 
00076 # @else
00077 # 
00078 # @brief Copy to NVList from Proeprties
00079 # 
00080 # This operation copies Properties to NVList.
00081 # Created NVList's values are CORBA::string.
00082 # 
00083 # @param nv NVList to store Properties values
00084 # @param prop Properties that is copies from
00085 # 
00086 # @endif
00087 def toConfigurationSet(conf, prop):
00088   conf.description = prop.getProperty("description")
00089   conf.id = prop.getName()
00090   OpenRTM_aist.NVUtil.copyFromProperties(conf.configuration_data, prop)
00091 
00092 
00093 
00094 ##
00095 # @if jp
00096 #
00097 # @class Configuration_impl
00098 # @brief SDO Configuration 実装クラス
00099 #
00100 # Configuration interface は Resource Data Model で定義されたデータの
00101 # 追加、削除等の操作を行うためのインターフェースである。
00102 # DeviceProfile, ServiceProfile, ConfigurationProfile および Organization
00103 # の変更を行うためのオペレーションを備えている。SDO の仕様ではアクセス制御
00104 # およびセキュリティに関する詳細については規定していない。
00105 # 
00106 # 複数の設定 (Configuration) を保持することにより、容易かつ素早くある設定
00107 # を反映させることができる。事前に定義された複数の設定を ConfigurationSets
00108 # および configuration profile として保持することができる。ひとつの
00109 # ConfigurationSet は特定の設定に関連付けられた全プロパティ値のリストを、
00110 # ユニークID、詳細とともに持っている。これにより、各設定項目の詳細を記述し
00111 # 区別することができる。Configuration interface のオペレーションはこれら
00112 # ConfiguratioinSets の管理を支援する。
00113 #
00114 #
00115 # - ConfigurationSet: id, description, NVList から構成される1セットの設定
00116 # - ConfigurationSetList: ConfigurationSet のリスト
00117 # - Parameter: name, type, allowed_values から構成されるパラメータ定義。
00118 # - ActiveConfigurationSet: 現在有効なコンフィギュレーションの1セット。
00119 #
00120 # 以下、SDO仕様に明記されていないもしくは解釈がわからないため独自解釈
00121 #
00122 # 以下の関数は ParameterList に対して処理を行う。
00123 # - get_configuration_parameters()
00124 #
00125 # 以下の関数はアクティブなConfigurationSetに対する処理を行う
00126 # - get_configuration_parameter_values()
00127 # - get_configuration_parameter_value()
00128 # - set_configuration_parameter()
00129 #
00130 # 以下の関数はConfigurationSetListに対して処理を行う
00131 # - get_configuration_sets()
00132 # - get_configuration_set()
00133 # - set_configuration_set_values()
00134 # - get_active_configuration_set()
00135 # - add_configuration_set()
00136 # - remove_configuration_set()
00137 # - activate_configuration_set()
00138 #
00139 # @since 0.4.0
00140 #
00141 # @else
00142 #
00143 # @class Configuration_impl
00144 # @brief Configuration implementation class
00145 #
00146 # Configuration interface provides operations to add or remove data
00147 # specified in resource data model. These operations provide functions to
00148 # change DeviceProfile, ServiceProfile, ConfigurationProfile, and
00149 # Organization. This specification does not address access control or
00150 # security aspects. Access to operations that modifies or removes profiles
00151 # should be controlled depending upon the application.
00152 #
00153 # Different configurations can be stored for simple and quick activation.
00154 # Different predefined configurations are stored as different
00155 # ConfigurationSets or configuration profile. A ConfigurationSet stores the
00156 # value of all properties assigned for the particular configuration along
00157 # with its unique id and description to identify and describe the
00158 # configuration respectively. Operations in the configuration interface
00159 # help manage these ConfigurationSets.
00160 #
00161 # @since 0.4.0
00162 #
00163 # @endif
00164 class Configuration_impl(SDOPackage__POA.Configuration):
00165   """
00166   """
00167 
00168   ##
00169   # @if jp
00170   #
00171   # @brief コンストラクタ
00172   # 
00173   # コンストラクタ
00174   #
00175   # @param self
00176   # @param configAdmin ConfigurationSetList
00177   # @param sdoServiceAdmin SdoServiceAdmin
00178   # 
00179   # @else
00180   # @brief class constructor
00181   # @param self
00182   # @param configAdmin ConfigurationSetList
00183   # @param sdoServiceAdmin SdoServiceAdmin
00184   #
00185   # @endif
00186   # Configuration_impl(RTC::ConfigAdmin& configAdmin,
00187   #                    RTC::SdoServiceAdmin& sdoServiceAdmin);
00188   def __init__(self, configAdmin, sdoServiceAdmin):
00189     """
00190      \var self._deviceProfile SDO DeviceProfile with mutex lock
00191     """
00192     self._deviceProfile = SDOPackage.DeviceProfile("","","","",[])
00193     self._dprofile_mutex = threading.RLock()
00194 
00195     """
00196      \var self._serviceProfiles SDO ServiceProfileList
00197     """
00198     self._serviceProfiles = []
00199     self._sprofile_mutex = threading.RLock()
00200 
00201     self._parameters = []
00202     self._params_mutex = threading.RLock()
00203 
00204     self._configsets = configAdmin
00205     self._config_mutex = threading.RLock()
00206 
00207     self._sdoservice = sdoServiceAdmin
00208 
00209     """
00210      \var self._organizations SDO OrganizationList
00211     """
00212     self._organizations = []
00213     self._org_mutex = threading.RLock()
00214 
00215     self._objref = self._this()
00216     self._rtcout = OpenRTM_aist.Manager.instance().getLogbuf("rtobject.sdo_config")
00217 
00218 
00219   #============================================================
00220   #
00221   # <<< CORBA interfaces >>>
00222   #
00223   #============================================================
00224 
00225   ##
00226   # @if jp
00227   # 
00228   # @brief [CORBA interface] SDO の DeviceProfile のセット
00229   #
00230   # このオペレーションは SDO の DeviceProfile をセットする。SDO が
00231   # DeviceProfile を保持していない場合は新たな DeviceProfile を生成し、
00232   # DeviceProfile をすでに保持している場合は既存のものと置き換える。
00233   #
00234   # @param self
00235   # @param dProfile SDO に関連付けられる DeviceProfile。
00236   #
00237   # @return オペレーションが成功したかどうかを返す。
00238   #
00239   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00240   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00241   # @exception NotAvailable SDOは存在するが応答がない。
00242   # @exception InvalidParameter 引数 "dProfile" が null である。
00243   # @exception InternalError 内部的エラーが発生した。
00244   # 
00245   # @else
00246   #
00247   # @brief [CORBA interface] Set DeviceProfile of SDO
00248   #
00249   # This operation sets the DeviceProfile of an SDO. If the SDO does not
00250   # have DeviceProfile, the operation will create a new DeviceProfile,
00251   # otherwise it will replace the existing DeviceProfile.
00252   #
00253   # @param self
00254   # @param dProfile The device profile that is to be assigned to this SDO.
00255   #
00256   # @return If the operation was successfully completed.
00257   #
00258   # @exception SDONotExists if the target SDO does not exist.(This exception 
00259   #                         is mapped to CORBA standard system exception
00260   #                         OBJECT_NOT_EXIST.)
00261   # @exception NotAvailable The target SDO is reachable but cannot respond.
00262   # @exception InvalidParameter The argument "dProfile" is null.
00263   # @exception InternalError The target SDO cannot execute the operation
00264   #                          completely due to some internal error.
00265   # @endif
00266   def set_device_profile(self, dProfile):
00267     self._rtcout.RTC_TRACE("set_device_profile()")
00268     if dProfile is None:
00269       raise SDOPackage.InvalidParameter("dProfile is empty.")
00270 
00271     try:
00272       guard = OpenRTM_aist.ScopedLock(self._dprofile_mutex)
00273       self._deviceProfile = dProfile
00274     except:
00275       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00276       raise SDOPackage.InternalError("Unknown Error")
00277 
00278     return True
00279 
00280 
00281   ##
00282   # @if jp
00283   # 
00284   # @brief [CORBA interface] SDO の ServiceProfile のセット
00285   #
00286   # このオペレーションはこの Configuration interface を所有する対象 SDO の
00287   # ServiceProfile を追加する。もし引数の ServiceProfile の id が空であれば
00288   # 新しい ID が生成されその ServiceProfile を格納する。もし id が空で
00289   # なければ、SDO は同じ id を持つ ServiceProfile を検索する。
00290   # 同じ id が存在しなければこの ServiceProfile を追加し、id が存在すれば
00291   # 上書きをする。<br>
00292   # (注意:最新バージョンではオペレーション名がadd_service_profile変更)
00293   #
00294   # @param self
00295   # @param sProfile 追加する ServiceProfile
00296   #
00297   # @return オペレーションが成功したかどうかを返す。
00298   #
00299   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00300   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00301   # @exception InvalidParameter 引数 "sProfile" が nullである。
00302   # @exception NotAvailable SDOは存在するが応答がない。
00303   # @exception InternalError 内部的エラーが発生した。
00304   # @else
00305   #
00306   # @brief [CORBA interface] Set SDO's ServiceProfile
00307   #
00308   # This operation adds ServiceProfile to the target SDO that navigates this
00309   # Configuration interface. If the id in argument ServiceProfile is null,
00310   # new id is created and the ServiceProfile is stored. If the id is not
00311   # null, the target SDO searches for ServiceProfile in it with the same id.
00312   # It adds the ServiceProfile if not exist, or overwrites if exist.
00313   #
00314   # @param self
00315   # @param sProfile ServiceProfile to be added.
00316   #
00317   # @return If the operation was successfully completed.
00318   #
00319   # @exception SDONotExists if the target SDO does not exist.(This exception 
00320   #                         is mapped to CORBA standard system exception
00321   #                         OBJECT_NOT_EXIST.)
00322   # @exception NotAvailable The target SDO is reachable but cannot respond.
00323   # @exception InvalidParameter The argument "sProfile" is null.
00324   # @exception InternalError The target SDO cannot execute the operation
00325   #                          completely due to some internal error.
00326   # @endif
00327   def add_service_profile(self, sProfile):
00328     self._rtcout.RTC_TRACE("add_service_profile()")
00329     if sProfile is None:
00330       raise SDOPackage.InvalidParameter("sProfile is empty.")
00331 
00332     try:
00333       return self._sdoservice.addSdoServiceConsumer(sProfile)
00334     except:
00335       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00336       raise SDOPackage.InternalError("Configuration.add_service_profile")
00337 
00338     return False
00339 
00340 
00341   ##
00342   # @if jp
00343   # 
00344   # @brief [CORBA interface] Organization の追加
00345   #
00346   # このオペレーションは Organization object のリファレンスを追加する。
00347   #
00348   # @param self
00349   # @param org 追加する Organization
00350   #
00351   # @return オペレーションが成功したかどうかを返す。
00352   #
00353   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00354   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00355   # @exception NotAvailable SDOは存在するが応答がない。
00356   # @exception InvalidParameter 引数 "organization" が null である。
00357   # @exception InternalError 内部的エラーが発生した。
00358   # @else
00359   #
00360   # @brief [CORBA interface] Add Organization
00361   #
00362   # This operation adds reference of an Organization object.
00363   #
00364   # @param self
00365   # @param org Organization to be added.
00366   #
00367   # @return If the operation was successfully completed.
00368   #
00369   # @exception SDONotExists if the target SDO does not exist.(This exception 
00370   #                         is mapped to CORBA standard system exception
00371   #                         OBJECT_NOT_EXIST.)
00372   # @exception NotAvailable The target SDO is reachable but cannot respond.
00373   # @exception InvalidParameter The argument "organization" is null.
00374   # @exception InternalError The target SDO cannot execute the operation
00375   #                          completely due to some internal error.
00376   # @endif
00377   def add_organization(self, org):
00378     self._rtcout.RTC_TRACE("add_organization()")
00379     if org is None:
00380       raise SDOPackage.InvalidParameter("org is empty.")
00381 
00382     try:
00383       OpenRTM_aist.CORBA_SeqUtil.push_back(self._organizations, org)
00384     except:
00385       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00386       raise SDOPackage.InternalError("Configuration.add_organization")
00387 
00388     return True
00389 
00390 
00391   ##
00392   # @if jp
00393   # 
00394   # @brief [CORBA interface] ServiceProfile の削除
00395   #
00396   # このオペレーションはこの Configuration interface を持つ SDO の
00397   # Service の ServiceProfile を削除する。削除する ServiceProfile
00398   # は引数により指定される。
00399   #
00400   # @param self
00401   # @param id_ 削除する ServcieProfile の serviceID。
00402   #
00403   # @return オペレーションが成功したかどうかを返す。
00404   #
00405   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00406   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00407   # @exception InvalidParameter 引数 "id" が null である。もしくは "id" に
00408   #            関連付けられた ServiceProfile が存在しない。
00409   # @exception NotAvailable SDOは存在するが応答がない。
00410   # @exception InternalError 内部的エラーが発生した。
00411   # @else
00412   #
00413   # @brief [CORBA interface] Remove ServiceProfile
00414   #
00415   # This operation removes ServiceProfile object to the SDO that has this
00416   # Configuration interface. The ServiceProfile object to be removed is
00417   # specified by argument.
00418   #
00419   # @param self
00420   # @param id_ serviceID of a ServiceProfile to be removed.
00421   #
00422   # @return If the operation was successfully completed.
00423   #
00424   # @exception SDONotExists if the target SDO does not exist.(This exception 
00425   #                         is mapped to CORBA standard system exception
00426   #                         OBJECT_NOT_EXIST.)
00427   # @exception InvalidParameter The argument "sProfile" is null, or if the
00428   #          object that is specified by argument "sProfile" does not exist.
00429   # @exception NotAvailable The target SDO is reachable but cannot respond.
00430   # @exception InternalError The target SDO cannot execute the operation
00431   #                          completely due to some internal error.
00432   # @endif
00433   def remove_service_profile(self, id_):
00434     self._rtcout.RTC_TRACE("remove_service_profile(%s)", id_)
00435     if id_ is None:
00436       raise SDOPackage.InvalidParameter("id is empty.")
00437 
00438     try:
00439       return self._sdoservice.removeSdoServiceConsumer(id_)
00440     except:
00441       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00442       raise SDOPackage.InternalError("Configuration.remove_service_profile")
00443 
00444     return False
00445 
00446 
00447   ##
00448   # @if jp
00449   # 
00450   # @brief [CORBA interface] Organization の参照の削除
00451   #
00452   # このオペレーションは Organization の参照を削除する。
00453   #
00454   # @param self
00455   # @param organization_id 削除する Organization の一意な id。
00456   #
00457   # @return オペレーションが成功したかどうかを返す。
00458   #
00459   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00460   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00461   # @exception InvalidParameter 引数 "organization_id" が null である。
00462   #            もしくは "organization_id" に関連付けられた 
00463   #            OrganizationProfile が存在しない。
00464   # @exception NotAvailable SDOは存在するが応答がない。
00465   # @exception InternalError 内部的エラーが発生した。
00466   # @else
00467   #
00468   # @brief [CORBA interface] Remove the reference of Organization 
00469   #
00470   # This operation removes the reference of an Organization object.
00471   #
00472   # @param self
00473   # @param organization_id Unique id of the organization to be removed.
00474   #
00475   # @return If the operation was successfully completed.
00476   #
00477   # @exception SDONotExists if the target SDO does not exist.(This exception 
00478   #                         is mapped to CORBA standard system exception
00479   #                         OBJECT_NOT_EXIST.)
00480   # @exception InvalidParameter The argument "organizationID" is null,
00481   #            or the object which is specified by argument "organizationID"
00482   #            does not exist.
00483   # @exception NotAvailable The target SDO is reachable but cannot respond.
00484   # @exception InternalError The target SDO cannot execute the operation
00485   #                          completely due to some internal error.
00486   # @endif
00487   def remove_organization(self, organization_id):
00488     self._rtcout.RTC_TRACE("remove_organization(%s)", organization_id)
00489     if organization_id is None:
00490       raise SDOPackage.InvalidParameter("organization_id is empty.")
00491 
00492     try:
00493       guard = OpenRTM_aist.ScopedLock(self._org_mutex)
00494       OpenRTM_aist.CORBA_SeqUtil.erase_if(self._organizations,
00495                                           self.org_id(organization_id))
00496     except:
00497       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00498       raise SDOPackage.InternalError("Configuration.remove_organization")
00499 
00500     return True
00501 
00502 
00503   ##
00504   # @if jp
00505   # 
00506   # @brief [CORBA interface] 設定パラメータのリストの取得
00507   #
00508   # このオペレーションは configuration parameter のリストを返す。
00509   # SDO が設定可能なパラメータを持たなければ空のリストを返す。
00510   #
00511   # @param self
00512   #
00513   # @return 設定を特徴付けるパラメータ定義のリスト。
00514   #
00515   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00516   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00517   # @exception NotAvailable SDOは存在するが応答がない。
00518   # @exception InternalError 内部的エラーが発生した。
00519   # @else
00520   #
00521   # @brief [CORBA interface] Getting a list of configuration parameter
00522   #
00523   # This operation returns a list of Parameters. An empty list is returned
00524   # if the SDO does not have any configurable parameter.
00525   #
00526   # @param self
00527   # @return The list with definitions of parameters characterizing the
00528   #          configuration.
00529   #
00530   # @exception SDONotExists if the target SDO does not exist.(This exception 
00531   #                         is mapped to CORBA standard system exception
00532   #                         OBJECT_NOT_EXIST.)
00533   # @exception NotAvailable The target SDO is reachable but cannot respond.
00534   # @exception InternalError The target SDO cannot execute the operation
00535   #                          completely due to some internal error.
00536   # @endif
00537   def get_configuration_parameters(self):
00538     self._rtcout.RTC_TRACE("get_configuration_parameters()")
00539     try:
00540       guard = OpenRTM_aist.ScopedLock(self._params_mutex)
00541       param = copy.copy(self._parameters)
00542       return param
00543     except:
00544       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00545       raise SDOPackage.InternalError("Configuration.get_configuration_parameters")
00546 
00547     return []
00548 
00549 
00550   ##
00551   # @if jp
00552   # 
00553   # @brief [CORBA interface] Configuration parameter の値のリストの取得
00554   #
00555   # このオペレーションは全ての configuration パラメータおよび値を返す。<br>
00556   # ※本実装では常に空のリストを返す
00557   #
00558   # @param self
00559   #
00560   # @return 全ての configuration パラメータと値のリスト。
00561   #
00562   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00563   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00564   # @exception NotAvailable SDOは存在するが応答がない。
00565   # @exception InternalError 内部的エラーが発生した。
00566   # @else
00567   #
00568   # @brief [CORBA interface] Getting value list of configuration parameter
00569   #
00570   # This operation returns all configuration parameters and their values.
00571   #
00572   # @param self
00573   # @return List of all configuration parameters and their values.
00574   #
00575   # @exception SDONotExists if the target SDO does not exist.(This exception 
00576   #                         is mapped to CORBA standard system exception
00577   #                         OBJECT_NOT_EXIST.)
00578   # @exception NotAvailable The target SDO is reachable but cannot respond.
00579   # @exception InternalError The target SDO cannot execute the operation
00580   #                          completely due to some internal error.
00581   # @endif
00582   def get_configuration_parameter_values(self):
00583     self._rtcout.RTC_TRACE("get_configuration_parameter_values()")
00584     guard = OpenRTM_aist.ScopedLock(self._config_mutex)
00585     nvlist = []
00586     return nvlist
00587 
00588 
00589   ##
00590   # @if jp
00591   # 
00592   # @brief [CORBA interface] Configuration parameter の値の取得
00593   #
00594   # このオペレーションは引数 "name" で指定されたパラメータ値を返す。<br>
00595   # ※本実装では常に None を返す
00596   #
00597   # @param self
00598   # @param name 値を要求するパラメータの名前。
00599   #
00600   # @return 指定されたパラメータの値。
00601   #
00602   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00603   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00604   # @exception InvalidParameter 引数 "name" が null である。
00605   #            もしくは "name" に関連付けられたパラメータが存在しない。
00606   # @exception NotAvailable SDOは存在するが応答がない。
00607   # @exception InternalError 内部的エラーが発生した。
00608   # @else
00609   #
00610   # @brief [CORBA interface] Getting value of configuration parameter
00611   #
00612   # This operation returns a value of parameter that is specified by
00613   # argument "name."
00614   #
00615   # @param self
00616   # @param Name of the parameter whose value is requested.
00617   #
00618   # @return The value of the specified parameter.
00619   #
00620   # @exception SDONotExists if the target SDO does not exist.(This exception 
00621   #                         is mapped to CORBA standard system exception
00622   #                         OBJECT_NOT_EXIST.)
00623   # @exception InvalidParameter if the value of the argument "name" is
00624   #                             empty String, or null, or if the parameter
00625   #                             that is specified by argument "name"
00626   #                             does not exist.
00627   # @exception NotAvailable The target SDO is reachable but cannot respond.
00628   # @exception InternalError The target SDO cannot execute the operation
00629   #                          completely due to some internal error.
00630   # @endif
00631   def get_configuration_parameter_value(self, name):
00632     self._rtcout.RTC_TRACE("get_configuration_parameter_value(%s)", name)
00633     if not name:
00634       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00635       raise SDOPackage.InvalidParameter("Name is empty.")
00636 
00637     return None
00638 
00639 
00640   ##
00641   # @if jp
00642   # 
00643   # @brief [CORBA interface] Configuration パラメータの変更
00644   #
00645   # このオペレーションは "name" で指定したパラメータの値を "value" に
00646   # 変更する。<br>
00647   # ※本実装では常にTrueを返す
00648   #
00649   # @param self
00650   # @param name 変更対象パラメータの名前。
00651   # @param value 変更対象パラメータの新しい値。
00652   #
00653   # @return オペレーションが成功したかどうかを返す。
00654   #
00655   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00656   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00657   # @exception InvalidParameter 引数( "name"もしくは"value") が null である。
00658   #            もしくは "name" に関連付けられたパラメータが存在しない。
00659   # @exception NotAvailable SDOは存在するが応答がない。
00660   # @exception InternalError 内部的エラーが発生した。
00661   # @else
00662   #
00663   # @brief [CORBA interface] Modify the parameter value
00664   #
00665   # This operation sets a parameter to a value that is specified by argument
00666   # "value." The parameter to be modified is specified by argument " name."
00667   #
00668   # @param self
00669   # @param name The name of parameter to be modified.
00670   # @param value New value of the specified parameter.
00671   #
00672   # @return If the operation was successfully completed.
00673   #
00674   # @exception SDONotExists if the target SDO does not exist.(This exception 
00675   #                         is mapped to CORBA standard system exception
00676   #                         OBJECT_NOT_EXIST.)
00677   # @exception InvalidParameter if arguments ("name" and/or "value") is
00678   #            null, or if the parameter that is specified by the argument
00679   #            "name" does not exist.
00680   # @exception NotAvailable The target SDO is reachable but cannot respond.
00681   # @exception InternalError The target SDO cannot execute the operation
00682   #                          completely due to some internal error.
00683   # @endif
00684   def set_configuration_parameter(self, name, value):
00685     self._rtcout.RTC_TRACE("set_configuration_parameter(%s, value)", name)
00686     if name is None or value is None:
00687       raise SDOPackage.InvalidParameter("Name/Value is empty.")
00688     return True
00689 
00690 
00691   ##
00692   # @if jp
00693   # 
00694   # @brief [CORBA interface] ConfigurationSet リストの取得 
00695   #
00696   # このオペレーションは ConfigurationProfile が持つ ConfigurationSet の
00697   # リストを返す。 SDO が ConfigurationSet を持たなければ空のリストを返す。
00698   #
00699   # @param self
00700   #
00701   # @return 保持している ConfigurationSet のリストの現在値。
00702   #
00703   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00704   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00705   # @exception NotAvailable SDOは存在するが応答がない。
00706   # @exception InternalError 内部的エラーが発生した。
00707   # @else
00708   #
00709   # @brief [CORBA interface] Getting list of ConfigurationSet
00710   #
00711   # This operation returns a list of ConfigurationSets that the
00712   # ConfigurationProfile has. An empty list is returned if the SDO does not
00713   # have any ConfigurationSets.
00714   # This operation returns a list of all ConfigurationSets of the SDO.
00715   # If no predefined ConfigurationSets exist, then empty list is returned.
00716   #
00717   # @param self
00718   # @return The list of stored configuration with their current values.
00719   #
00720   # @exception SDONotExists if the target SDO does not exist.(This exception 
00721   #                         is mapped to CORBA standard system exception
00722   #                         OBJECT_NOT_EXIST.)
00723   # @exception NotAvailable The target SDO is reachable but cannot respond.
00724   # @exception InternalError The target SDO cannot execute the operation
00725   #                          completely due to some internal error.
00726   # @endif
00727   def get_configuration_sets(self):
00728     self._rtcout.RTC_TRACE("get_configuration_sets()")
00729     try:
00730       guard = OpenRTM_aist.ScopedLock(self._config_mutex)
00731 
00732       cf = self._configsets.getConfigurationSets()
00733       len_ = len(cf)
00734 
00735       config_sets = [SDOPackage.ConfigurationSet("","",[]) for i in range(len_)]
00736       for i in range(len_):
00737         toConfigurationSet(config_sets[i], cf[i])
00738 
00739       return config_sets
00740 
00741     except:
00742       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00743       raise SDOPackage.InternalError("Configuration.get_configuration_sets")
00744 
00745     return []
00746 
00747   ##
00748   # @if jp
00749   # 
00750   # @brief [CORBA interface] ConfigurationSet の取得
00751   #
00752   # このオペレーションは引数で指定された ConfigurationSet の ID に関連
00753   # 付けられた ConfigurationSet を返す。
00754   #
00755   # @param self
00756   # @param config_id ConfigurationSet の識別子。
00757   #
00758   # @return 引数により指定された ConfigurationSet。
00759   #
00760   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00761   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00762   # @exception InvalidParameter "config_id" が null か、指定された
00763   #            ConfigurationSet が存在しない。
00764   # @exception NotAvailable SDOは存在するが応答がない。
00765   # @exception InternalError 内部的エラーが発生した。
00766   # @else
00767   #
00768   # @brief [CORBA interface] Getting a ConfigurationSet
00769   #
00770   # This operation returns the ConfigurationSet specified by the parameter
00771   # configurationSetID.
00772   #
00773   # @param self
00774   # @param config_id Identifier of ConfigurationSet requested.
00775   #
00776   # @return The configuration set specified by the parameter config_id.
00777   #
00778   # @exception SDONotExists if the target SDO does not exist.(This exception 
00779   #                         is mapped to CORBA standard system exception
00780   #                         OBJECT_NOT_EXIST.)
00781   # @exception InvalidParameter If the parameter 'config_id' is null
00782   #            or if there are no ConfigurationSets stored with such id.
00783   # @exception NotAvailable The target SDO is reachable but cannot respond.
00784   # @exception InternalError The target SDO cannot execute the operation
00785   #                          completely due to some internal error.
00786   # @endif
00787   def get_configuration_set(self, config_id):
00788     self._rtcout.RTC_TRACE("get_configuration_set(%s)", config_id)
00789     if not config_id:
00790       raise SDOPackage.InvalidParameter("ID is empty")
00791 
00792     guard = OpenRTM_aist.ScopedLock(self._config_mutex)
00793 
00794     try:
00795       if not self._configsets.haveConfig(config_id):
00796         self._rtcout.RTC_ERROR("No such ConfigurationSet")
00797         raise SDOPackage.InternalError("No such ConfigurationSet")
00798     except:
00799       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00800       raise SDOPackage.InternalError("Unknown exception")
00801       
00802 
00803     configset = self._configsets.getConfigurationSet(config_id)
00804 
00805     try:
00806       config = SDOPackage.ConfigurationSet("","",[])
00807       toConfigurationSet(config, configset)
00808       return config
00809     except:
00810       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00811       raise SDOPackage.InternalError("Configuration::get_configuration_set()")
00812 
00813     return SDOPackage.ConfigurationSet("","",[])
00814 
00815 
00816   ##
00817   # @if jp
00818   # 
00819   # @brief [CORBA interface] ConfigurationSet をセットする
00820   #
00821   # このオペレーションは指定された id の ConfigurationSet を更新する。
00822   #
00823   # @param self
00824   # @param configuration_set 変更する ConfigurationSet そのもの。
00825   #
00826   # @return ConfigurationSet が正常に更新できた場合は true。
00827   #         そうでなければ false を返す。
00828   #
00829   # @exception InvalidParameter config_id が null か、
00830   #            指定された id で格納された ConfigurationSetが存在しないか、
00831   #            指定された configuration_set内の属性の1つが不正。
00832   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00833   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00834   # @exception NotAvailable SDOは存在するが応答がない。
00835   # @exception InternalError 内部的エラーが発生した。
00836   # @else
00837   #
00838   # @brief [CORBA interface] Set ConfigurationSet
00839   #
00840   # This operation modifies the specified ConfigurationSet of an SDO.
00841   #
00842   # @param self
00843   # @param configuration_set ConfigurationSet to be replaced.
00844   #
00845   # @return A flag indicating if the ConfigurationSet was modified 
00846   #         successfully. "true" - The ConfigurationSet was modified
00847   #         successfully. "false" - The ConfigurationSet could not be
00848   #         modified successfully.
00849   #
00850   # @exception InvalidParameter if the parameter 'configurationSetID' is
00851   #            null or if there is no ConfigurationSet stored with such id.
00852   #            This exception is also raised if one of the attributes
00853   #            defining ConfigurationSet is not valid.
00854   # @exception SDONotExists if the target SDO does not exist.(This exception 
00855   #                         is mapped to CORBA standard system exception
00856   #                         OBJECT_NOT_EXIST.)
00857   # @exception NotAvailable The target SDO is reachable but cannot respond.
00858   # @exception InternalError The target SDO cannot execute the operation
00859   #                          completely due to some internal error.
00860   # @endif
00861   def set_configuration_set_values(self, configuration_set):
00862     self._rtcout.RTC_TRACE("set_configuration_set_values()")
00863     if not configuration_set or not configuration_set.id:
00864       raise SDOPackage.InvalidParameter("ID is empty.")
00865 
00866     try:
00867       conf = OpenRTM_aist.Properties(key=configuration_set.id)
00868       toProperties(conf, configuration_set)
00869       # ----------------------------------------------------------------------------
00870       # Because the format of port-name had been changed from <port_name> 
00871       # to <instance_name>.<port_name>, the following processing was added. 
00872       # (since r1648)
00873 
00874       if conf.findNode("exported_ports"):
00875         exported_ports = conf.getProperty("exported_ports").split(",")
00876         exported_ports_str = ""
00877         for i in range(len(exported_ports)):
00878           keyval = exported_ports[i].split(".")
00879           if len(keyval) > 2:
00880             exported_ports_str += keyval[0] + "." + keyval[-1]
00881           else:
00882             exported_ports_str += exported_ports[i]
00883 
00884           if i != (len(exported_ports)-1):
00885             exported_ports_str += ","
00886             
00887         conf.setProperty("exported_ports",exported_ports_str)
00888       #---------------------------------------------------------------------------
00889       return self._configsets.setConfigurationSetValues(conf)
00890     except:
00891       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00892       raise SDOPackage.InternalError("Configuration::set_configuration_set_values()")
00893 
00894     return True
00895 
00896 
00897   ##
00898   # @if jp
00899   # 
00900   # @brief [CORBA interface] アクティブな ConfigurationSet を取得する
00901   #
00902   # このオペレーションは当該SDOの現在アクティブな ConfigurationSet を返す。
00903   # (もしSDOの現在の設定が予め定義された ConfigurationSet により設定されて
00904   # いるならば。)
00905   # ConfigurationSet は以下の場合にはアクティブではないものとみなされる。
00906   #
00907   # - 現在の設定が予め定義された ConfigurationSet によりセットされていない、
00908   # - SDO の設定がアクティブになった後に変更された、
00909   # - SDO を設定する ConfigurationSet が変更された、
00910   # 
00911   # これらの場合には、空の ConfigurationSet が返される。
00912   #
00913   # @param self
00914   #
00915   # @return 現在アクティブな ConfigurationSet。
00916   #
00917   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00918   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00919   # @exception NotAvailable SDOは存在するが応答がない。
00920   # @exception InternalError 内部的エラーが発生した。
00921   # @else
00922   #
00923   # @brief [CORBA interface] Get active ConfigurationSet
00924   #
00925   # This operation returns the current active ConfigurationSet of an
00926   # SDO (i.e., if the current configuration of the SDO was set using
00927   # predefined configuration set).
00928   # ConfigurationSet cannot be considered active if the:
00929   #
00930   # - current configuration of the SDO was not set using any predefined
00931   #   ConfigurationSet, or
00932   # - configuration of the SDO was changed after it has been active, or
00933   # - ConfigurationSet that was used to configure the SDO was modified.
00934   #
00935   # Empty ConfigurationSet is returned in these cases.
00936   #
00937   # @param self
00938   # @return The active ConfigurationSet.
00939   #
00940   # @exception SDONotExists if the target SDO does not exist.(This exception 
00941   #                         is mapped to CORBA standard system exception
00942   #                         OBJECT_NOT_EXIST.)
00943   # @exception NotAvailable The target SDO is reachable but cannot respond.
00944   # @exception InternalError The target SDO cannot execute the operation
00945   #                          completely due to some internal error.
00946   # @endif
00947   def get_active_configuration_set(self):
00948     self._rtcout.RTC_TRACE("get_active_configuration_set()")
00949     if not self._configsets.isActive():
00950       raise SDOPackage.NotAvailable("NotAvailable: Configuration.get_active_configuration_set()")
00951 
00952     try:
00953       guard = OpenRTM_aist.ScopedLock(self._config_mutex)
00954       config = SDOPackage.ConfigurationSet("","",[])
00955       toConfigurationSet(config, self._configsets.getActiveConfigurationSet())
00956       return config
00957     except:
00958       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
00959       raise SDOPackage.InternalError("Configuration.get_active_configuration_set()")
00960 
00961     return SDOPackage.ConfigurationSet("","",[])
00962 
00963 
00964   ##
00965   # @if jp
00966   # 
00967   # @brief [CORBA interface] ConfigurationSet を追加する
00968   #
00969   # ConfigurationProfile に ConfigurationSet を追加するオペレーション。
00970   #
00971   # @param self
00972   # @param configuration_set 追加する ConfigurationSet。
00973   #
00974   # @return オペレーションが成功したかどうか。
00975   #
00976   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
00977   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
00978   # @exception InvalidParameter "configurationSet" が null か、
00979   #            "configurationSet"で定義された属性の1つが不正か、
00980   #            指定された configurationSet もIDが既に存在する。
00981   # @exception NotAvailable SDOは存在するが応答がない。
00982   # @exception InternalError 内部的エラーが発生した。
00983   # @else
00984   #
00985   # @brief [CORBA interface] Add ConfigurationSet
00986   #
00987   # This operation adds a ConfigurationSet to the ConfigurationProfile.
00988   #
00989   # @param self
00990   # @param configuration_set The ConfigurationSet that is added.
00991   #
00992   # @return If the operation was successfully completed.
00993   #
00994   # @exception SDONotExists if the target SDO does not exist.(This exception 
00995   #                         is mapped to CORBA standard system exception
00996   #                         OBJECT_NOT_EXIST.)
00997   # @exception InvalidParameter If the argument "configurationSet" is null,
00998   #            or if one of the attributes defining "configurationSet" is
00999   #            invalid, or if the specified identifier of the configuration
01000   #            set already exists.
01001   # @exception NotAvailable The target SDO is reachable but cannot respond.
01002   # @exception InternalError The target SDO cannot execute the operation
01003   #                          completely due to some internal error.
01004   # @endif
01005   def add_configuration_set(self, configuration_set):
01006     self._rtcout.RTC_TRACE("add_configuration_set()")
01007     if configuration_set is None:
01008       raise SDOPackage.InvalidParameter("configuration_set is empty.")
01009 
01010     try:
01011       guard = OpenRTM_aist.ScopedLock(self._config_mutex)
01012       config_id = configuration_set.id
01013       config = OpenRTM_aist.Properties(key=config_id)
01014       toProperties(config, configuration_set)
01015       return self._configsets.addConfigurationSet(config)
01016     except:
01017       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
01018       raise SDOPackage.InternalError("Configuration::add_configuration_set()")
01019 
01020     return True
01021 
01022 
01023   ##
01024   # @if jp
01025   # 
01026   # @brief [CORBA interface] ConfigurationSet を削除する
01027   #
01028   # ConfigurationProfile から ConfigurationSet を削除する。
01029   #
01030   # @param self
01031   # @param config_id 削除する ConfigurationSet の id。
01032   #
01033   # @return オペレーションが成功したかどうか。
01034   #
01035   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
01036   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
01037   # @exception InvalidParameter 引数 "configurationSetID" が null である、
01038   #            もしくは、引数で指定された ConfigurationSet が存在しない。
01039   # @exception NotAvailable SDOは存在するが応答がない。
01040   # @exception InternalError 内部的エラーが発生した。
01041   # @else
01042   #
01043   # @brief [CORBA interface] Remove ConfigurationSet
01044   #
01045   # This operation removes a ConfigurationSet from the ConfigurationProfile.
01046   #
01047   # @param self
01048   # @param config_id The id of ConfigurationSet which is removed.
01049   #
01050   # @return If the operation was successfully completed.
01051   #
01052   # @exception SDONotExists if the target SDO does not exist.(This exception 
01053   #                         is mapped to CORBA standard system exception
01054   #                         OBJECT_NOT_EXIST.)
01055   # @exception InvalidParameter The arguments "configurationSetID" is null,
01056   #            or if the object specified by the argument
01057   #            "configurationSetID" does not exist.
01058   # @exception NotAvailable The target SDO is reachable but cannot respond.
01059   # @exception InternalError The target SDO cannot execute the operation
01060   #                          completely due to some internal error.
01061   # @endif
01062   def remove_configuration_set(self, config_id):
01063     self._rtcout.RTC_TRACE("remove_configuration_set(%s)", config_id)
01064     if not config_id:
01065       raise SDOPackage.InvalidParameter("ID is empty.")
01066       
01067     try:
01068       guard = OpenRTM_aist.ScopedLock(self._config_mutex)
01069       return self._configsets.removeConfigurationSet(config_id)
01070     except:
01071       self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception())
01072       raise SDOPackage.InternalError("Configuration.remove_configuration_set()")
01073 
01074     return False
01075 
01076 
01077   ##
01078   # @if jp
01079   # 
01080   # @brief [CORBA interface] ConfigurationSet のアクティブ化
01081   #
01082   # ConfigurationProfile に格納された ConfigurationSet のうち一つを
01083   # アクティブにする。
01084   # このオペレーションは特定の ConfigurationSet をアクティブにする。
01085   # すなわち、SDO のコンフィギュレーション・プロパティがその格納されている
01086   # ConfigurationSet により設定されるプロパティの値に変更される。
01087   # 指定された ConfigurationSet の値がアクティブ・コンフィギュレーション
01088   # にコピーされるということを意味する。
01089   #
01090   # @param self
01091   # @param config_id アクティブ化する ConfigurationSet の id。
01092   #
01093   # @return オペレーションが成功したかどうか。
01094   #
01095   # @exception SDONotExists ターゲットのSDOが存在しない。(本例外は、CORBA標準
01096   #                         システム例外のOBJECT_NOT_EXISTにマッピングされる)
01097   # @exception InvalidParameter 引数 "config_id" が null である、もしくは
01098   #            引数で指定された ConfigurationSet が存在しない。
01099   # @exception NotAvailable SDOは存在するが応答がない。
01100   # @exception InternalError 内部的エラーが発生した。
01101   # @else
01102   #
01103   # @brief [CORBA interface] Activate ConfigurationSet
01104   #
01105   # This operation activates one of the stored ConfigurationSets in the
01106   # ConfigurationProfile.
01107   # This operation activates the specified stored ConfigurationSets.
01108   # This means that the configuration properties of the SDO are changed as
01109   # the values of these properties specified in the stored ConfigurationSet.
01110   # In other words, values of the specified ConfigurationSet are now copied
01111   # to the active configuration.
01112   #
01113   # @param self
01114   # @param Identifier of ConfigurationSet to be activated.
01115   #
01116   # @return If the operation was successfully completed.
01117   #
01118   # @exception SDONotExists if the target SDO does not exist.(This exception 
01119   #                         is mapped to CORBA standard system exception
01120   #                         OBJECT_NOT_EXIST.)
01121   # @exception InvalidParameter if the argument ("configID") is null or
01122   #            there is no configuration set with identifier specified by
01123   #            the argument.
01124   # @exception NotAvailable The target SDO is reachable but cannot respond.
01125   # @exception InternalError The target SDO cannot execute the operation
01126   #                          completely due to some internal error.
01127   # @endif
01128   def activate_configuration_set(self, config_id):
01129     self._rtcout.RTC_TRACE("activate_configuration_set(%s)", config_id)
01130     if not config_id:
01131       raise SDOPackage.InvalidParameter("ID is empty.")
01132 
01133     if self._configsets.activateConfigurationSet(config_id):
01134       return True
01135     else:
01136       raise SDOPackage.InternalError("Configuration.activate_configuration_set()")
01137 
01138     return False
01139 
01140 
01141   #============================================================
01142   # end of CORBA interface definition
01143   #============================================================
01144 
01145   ##
01146   # @if jp
01147   #
01148   # @brief オブジェクト リファレンスを取得する
01149   # 
01150   # 対象のオブジェクトリファレンスを取得する
01151   #
01152   # @param self
01153   # 
01154   # @return オブジェクトリファレンス
01155   # 
01156   # @else
01157   #
01158   # @endif
01159   def getObjRef(self):
01160     return self._objref
01161 
01162 
01163   ##
01164   # @if jp
01165   #
01166   # @brief SDO の DeviceProfile を取得する
01167   # 
01168   # SDO の DeviceProfile を取得する
01169   #
01170   # @param self
01171   # 
01172   # @return SDO の DeviceProfile
01173   # 
01174   # @else
01175   #
01176   # @endif
01177   def getDeviceProfile(self):
01178     return self._deviceProfile
01179 
01180 
01181   ##
01182   # @if jp
01183   #
01184   # @brief SDO の ServiceProfile のリストを取得する
01185   # 
01186   # SDO の ServiceProfile のリストを取得する
01187   #
01188   # @param self
01189   # 
01190   # @return SDO ServiceProfileリスト
01191   # 
01192   # @else
01193   #
01194   # @endif
01195   def getServiceProfiles(self):
01196     return self._serviceProfiles
01197 
01198 
01199   ##
01200   # @if jp
01201   #
01202   # @brief SDO の ServiceProfile を取得する
01203   # 
01204   # このオペレーションは引数 "id" で指定されたSDO の ServiceProfileを返す。
01205   # "id" で指定された ServiceProfileが存在しない場合、
01206   # ServiceProfileのインスタンスを生成し返す。
01207   # 
01208   # @param self
01209   # @param id ServiceProfile の識別子。
01210   # 
01211   # @return 指定された SDO ServiceProfile
01212   # 
01213   # @else
01214   #
01215   # @endif
01216   def getServiceProfile(self, id):
01217     index = OpenRTM_aist.CORBA_SeqUtil.find(self._serviceProfiles,
01218                                             self.service_id(id))
01219 
01220     if index < 0:
01221       return SDOPackage.ServiceProfile("","",[],None)
01222 
01223     return self._serviceProfiles[index]
01224 
01225 
01226   ##
01227   # @if jp
01228   #
01229   # @brief SDO の Organization リストを取得する
01230   # 
01231   # SDO の Organization リストを取得する
01232   # 
01233   # @param self
01234   # 
01235   # @return SDO の Organization リスト
01236   # 
01237   # @else
01238   #
01239   # @endif
01240   def getOrganizations(self):
01241     return self._organizations
01242 
01243 
01244   ##
01245   # @if jp
01246   #
01247   # @brief UUIDを生成する
01248   # 
01249   # UUIDを生成する
01250   # 
01251   # @param self
01252   # 
01253   # @return 生成したUUID
01254   # 
01255   # @else
01256   #
01257   # @endif
01258   def getUUID(self):
01259     return OpenRTM_aist.uuid1()
01260 
01261 
01262   # functor for NVList
01263   ##
01264   # @if jp
01265   # @class nv_name
01266   # @brief  NVList用functor
01267   # @else
01268   # @brief  functor for NVList
01269   # @endif
01270   class nv_name:
01271     def __init__(self, name_):
01272       self._name = str(name_)
01273 
01274     def __call__(self, nv):
01275       name_ = str(nv.name)
01276       return self._name == name_
01277 
01278 
01279   # functor for ServiceProfile
01280   ##
01281   # @if jp
01282   # @class service_id
01283   # @brief  ServiceProfile用functor
01284   # @else
01285   # @brief  functor for ServiceProfile
01286   # @endif
01287   class service_id:
01288     def __init__(self, id_):
01289       self._id = str(id_)
01290 
01291     def __call__(self, s):
01292       id_ = str(s.id)
01293       return self._id == id_
01294 
01295 
01296   # functor for Organization
01297   ##
01298   # @if jp
01299   # @class org_id
01300   # @brief  Organization用functor
01301   # @else
01302   # @brief  functor for Organization
01303   # @endif
01304   class org_id:
01305     def __init__(self, id_):
01306       self._id = str(id_)
01307 
01308     def __call__(self, o):
01309       id_ = str(o.get_organization_id())
01310       return self._id == id_
01311 
01312     
01313   # functor for ConfigurationSet
01314   ##
01315   # @if jp
01316   # @class config_id
01317   # @brief  ConfigurationSet用functor
01318   # @else
01319   # @brief  functor for ConfigurationSet
01320   # @endif
01321   class config_id:
01322     def __init__(self, id_):
01323       self._id = str(id_)
01324 
01325     def __call__(self, c):
01326       id_ = str(c.id)
01327       return self._id == id_


openrtm_aist_python
Author(s): Shinji Kurihara
autogenerated on Thu Aug 27 2015 14:17:28