[openrtm-commit:01870] r804 - in trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC: idl src/jp/go/aist/rtm/RTC

openrtm @ openrtm.org openrtm @ openrtm.org
2016年 3月 22日 (火) 19:02:06 JST


Author: win-ei
Date: 2016-03-22 19:02:06 +0900 (Tue, 22 Mar 2016)
New Revision: 804

Modified:
   trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/idl/Manager.idl
   trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerServant.java
Log:
Added string_to_component() to NamingManager. ref #3396

Modified: trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/idl/Manager.idl
===================================================================
--- trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/idl/Manager.idl	2016-03-22 07:45:51 UTC (rev 803)
+++ trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/idl/Manager.idl	2016-03-22 10:02:06 UTC (rev 804)
@@ -47,22 +47,22 @@
 
   interface Manager
   {
-    // module ŠÖ˜A
+    // module 関連
     /*!
      * @if jp
-     * @brief ƒ‚ƒWƒ…[ƒ‹‚ðƒ[ƒh‚·‚é
+     * @brief モジュールをロードする
      *
-     * “–ŠYƒ}ƒl[ƒWƒƒ‚ÉŽw’肳‚ꂽƒ‚ƒWƒ…[ƒ‹‚ðƒ[ƒh‚µAŽw’肳‚ꂽ‰Šú‰»
-     * ŠÖ”‚ŏ‰Šú‰»‚ðs‚¤B
+     * 当該マネージャに指定されたモジュールをロードし、指定された初期化
+     * 関数で初期化を行う。
      *
-     * @param pathname ƒ‚ƒWƒ…[ƒ‹‚ւ̃pƒX
-     * @param initfunc ƒ‚ƒWƒ…[ƒ‹‚̏‰Šú‰»ŠÖ”
-     * @return ƒŠƒ^[ƒ“ƒR[ƒh
+     * @param pathname モジュールへのパス
+     * @param initfunc モジュールの初期化関数
+     * @return リターンコード
      *
      * @else
      * @brief Loading a module
      *
-     * This operation loads a specified loadable moduleAand perform
+     * This operation loads a specified loadable module、and perform
      * initialization with the specified function.
      *
      * @param pathname A path to a loading module.
@@ -75,12 +75,12 @@
 
     /*!
      * @if jp
-     * @brief ƒ‚ƒWƒ…[ƒ‹‚ðƒAƒ“ƒ[ƒh‚·‚é
+     * @brief モジュールをアンロードする
      *
-     * “–ŠYƒ}ƒl[ƒWƒƒ‚ÉŽw’肳‚ꂽƒ‚ƒWƒ…[ƒ‹‚ðƒAƒ“ƒ[ƒh‚·‚éB
+     * 当該マネージャに指定されたモジュールをアンロードする。
      *
-     * @param pathname ƒ‚ƒWƒ…[ƒ‹‚ւ̃pƒX
-     * @return ƒŠƒ^[ƒ“ƒR[ƒh
+     * @param pathname モジュールへのパス
+     * @return リターンコード
      *
      * @else
      * @brief Unloading a module
@@ -96,11 +96,11 @@
 
     /*!
      * @if jp
-     * @brief ƒ[ƒh‰Â”\‚ȃ‚ƒWƒ…[ƒ‹‚̃vƒƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚é
+     * @brief ロード可能なモジュールのプロファイルを取得する
      *
-     * ƒ[ƒh‰Â”\‚ȃ‚ƒWƒ…[ƒ‹‚̃vƒƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚éB
+     * ロード可能なモジュールのプロファイルを取得する。
      *
-     * @return ƒ‚ƒWƒ…[ƒ‹ƒvƒƒtƒ@ƒCƒ‹
+     * @return モジュールプロファイル
      *
      * @else
      * @brief Getting loadable module profiles
@@ -115,11 +115,11 @@
 
     /*!
      * @if jp
-     * @brief ƒ[ƒhÏ‚݂̃‚ƒWƒ…[ƒ‹‚̃vƒƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚é
+     * @brief ロード済みのモジュールのプロファイルを取得する
      *
-     * ƒ[ƒhÏ‚݂̃‚ƒWƒ…[ƒ‹‚̃vƒƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚éB
+     * ロード済みのモジュールのプロファイルを取得する。
      *
-     * @return ƒ‚ƒWƒ…[ƒ‹ƒvƒƒtƒ@ƒCƒ‹
+     * @return モジュールプロファイル
      *
      * @else
      * @brief Getting loaded module profiles
@@ -132,15 +132,15 @@
      */
     ModuleProfileList get_loaded_modules();
     
-    // component ŠÖ˜A
+    // component 関連
     /*!
      * @if jp
-     * @brief ƒRƒ“ƒ|[ƒlƒ“ƒgƒtƒ@ƒNƒgƒŠ‚̃vƒƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚é
+     * @brief コンポーネントファクトリのプロファイルを取得する
      *
-     * ƒ[ƒhÏ‚݂̃‚ƒWƒ…[ƒ‹‚Ì‚¤‚¿ARTƒRƒ“ƒ|[ƒlƒ“ƒg‚̃‚ƒWƒ…[ƒ‹‚ªŽ‚Â
-     * ƒtƒ@ƒNƒgƒŠ‚̃vƒƒtƒ@ƒCƒ‹‚̃ŠƒXƒg‚ðŽæ“¾‚·‚éB
+     * ロード済みのモジュールのうち、RTコンポーネントのモジュールが持つ
+     * ファクトリのプロファイルのリストを取得する。
      *
-     * @return ƒRƒ“ƒ|[ƒlƒ“ƒgƒtƒ@ƒNƒgƒŠ‚̃vƒƒtƒ@ƒCƒ‹ƒŠƒXƒg
+     * @return コンポーネントファクトリのプロファイルリスト
      *
      * @else
      * @brief Getting component factory profiles
@@ -156,11 +156,11 @@
 
     /*!
      * @if jp
-     * @brief ƒRƒ“ƒ|[ƒlƒ“ƒg‚𐶐¬‚·‚é
+     * @brief コンポーネントを生成する
      *
-     * ˆø”‚ÉŽw’肳‚ꂽƒRƒ“ƒ|[ƒlƒ“ƒg‚𐶐¬‚·‚éB
+     * 引数に指定されたコンポーネントを生成する。
      *
-     * @return ¶¬‚³‚ꂽRTƒRƒ“ƒ|[ƒlƒ“ƒg
+     * @return 生成されたRTコンポーネント
      *
      * @else
      * @brief Creating an RT-Component
@@ -176,11 +176,11 @@
 
     /*!
      * @if jp
-     * @brief ƒRƒ“ƒ|[ƒlƒ“ƒg‚ðíœ‚·‚é
+     * @brief コンポーネントを削除する
      *
-     * ˆø”‚ÉŽw’肳‚ꂽƒRƒ“ƒ|[ƒlƒ“ƒg‚ðíœ‚·‚éB
+     * 引数に指定されたコンポーネントを削除する。
      *
-     * @return ƒŠƒ^[ƒ“ƒR[ƒh
+     * @return リターンコード
      *
      * @else
      * @brief Deleting an RT-Component
@@ -196,11 +196,11 @@
 
     /*!
      * @if jp
-     * @brief ‹N“®’†‚̃Rƒ“ƒ|[ƒlƒ“ƒg‚̃ŠƒXƒg‚ðŽæ“¾‚·‚é
+     * @brief 起動中のコンポーネントのリストを取得する
      *
-     * Œ»Ý“–ŠYƒ}ƒl[ƒWƒƒã‚Å‹N“®’†‚̃Rƒ“ƒ|[ƒlƒ“ƒg‚̃ŠƒXƒg‚ð•Ô‚·B
+     * 現在当該マネージャ上で起動中のコンポーネントのリストを返す。
      *
-     * @return RTƒRƒ“ƒ|[ƒlƒ“ƒg‚̃ŠƒXƒg
+     * @return RTコンポーネントのリスト
      *
      * @else
      * @brief Getting RT-Component list running on this manager
@@ -215,12 +215,12 @@
 
     /*!
      * @if jp
-     * @brief ‹N“®’†‚̃Rƒ“ƒ|[ƒlƒ“ƒgƒvƒƒtƒ@ƒCƒ‹‚̃ŠƒXƒg‚ðŽæ“¾‚·‚é
+     * @brief 起動中のコンポーネントプロファイルのリストを取得する
      *
-     * Œ»Ý“–ŠYƒ}ƒl[ƒWƒƒã‚Å‹N“®’†‚̃Rƒ“ƒ|[ƒlƒ“ƒg‚̃vƒƒtƒ@ƒCƒ‹‚̃ŠƒX
-     * ƒg‚ð•Ô‚·B
+     * 現在当該マネージャ上で起動中のコンポーネントのプロファイルのリス
+     * トを返す。
      *
-     * @return RTƒRƒ“ƒ|[ƒlƒ“ƒgƒvƒƒtƒ@ƒCƒ‹‚̃ŠƒXƒg
+     * @return RTコンポーネントプロファイルのリスト
      *
      * @else
      * @brief Getting RT-Component's profile list running on this manager
@@ -234,14 +234,14 @@
      */
     RTC::ComponentProfileList get_component_profiles();
 
-    // manager Šî–{
+    // manager 基本
     /*!
      * @if jp
-     * @brief ƒ}ƒl[ƒWƒƒ‚̃vƒƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚é
+     * @brief マネージャのプロファイルを取得する
      *
-     * Œ»Ý“–ŠYƒ}ƒl[ƒWƒƒ‚̃vƒƒtƒ@ƒCƒ‹‚ðŽæ“¾‚·‚éB
+     * 現在当該マネージャのプロファイルを取得する。
      *
-     * @return ƒ}ƒl[ƒWƒƒƒvƒƒtƒ@ƒCƒ‹
+     * @return マネージャプロファイル
      *
      * @else
      * @brief Getting this manager's profile.
@@ -256,11 +256,11 @@
 
     /*!
      * @if jp
-     * @brief ƒ}ƒl[ƒWƒƒ‚̃Rƒ“ƒtƒBƒMƒ…ƒŒ[ƒVƒ‡ƒ“‚ðŽæ“¾‚·‚é
+     * @brief マネージャのコンフィギュレーションを取得する
      *
-     * Œ»Ý“–ŠYƒ}ƒl[ƒWƒƒ‚̃Rƒ“ƒtƒBƒMƒ…ƒŒ[ƒVƒ‡ƒ“‚ðŽæ“¾‚·‚éB
+     * 現在当該マネージャのコンフィギュレーションを取得する。
      *
-     * @return ƒ}ƒl[ƒWƒƒƒRƒ“ƒtƒBƒMƒ…ƒŒ[ƒVƒ‡ƒ“
+     * @return マネージャコンフィギュレーション
      *
      * @else
      * @brief Getting this manager's configuration.
@@ -275,13 +275,13 @@
 
     /*!
      * @if jp
-     * @brief ƒ}ƒl[ƒWƒƒ‚̃Rƒ“ƒtƒBƒMƒ…ƒŒ[ƒVƒ‡ƒ“‚ðÝ’è‚·‚é
+     * @brief マネージャのコンフィギュレーションを設定する
      *
-     * Œ»Ý“–ŠYƒ}ƒl[ƒWƒƒ‚̃Rƒ“ƒtƒBƒMƒ…ƒŒ[ƒVƒ‡ƒ“‚ðÝ’è‚·‚éB
+     * 現在当該マネージャのコンフィギュレーションを設定する。
      *
-     * @param name ƒZƒbƒg‚·‚éƒRƒ“ƒtƒBƒMƒ…ƒŒ[ƒVƒ‡ƒ“‚̃L[–¼
-     * @param value ƒZƒbƒg‚·‚éƒRƒ“ƒtƒBƒMƒ…ƒŒ[ƒVƒ‡ƒ“‚Ì’l
-     * @return ƒŠƒ^[ƒ“ƒR[ƒh
+     * @param name セットするコンフィギュレーションのキー名
+     * @param value セットするコンフィギュレーションの値
+     * @return リターンコード
      *
      * @else
      * @brief Setting manager's configuration
@@ -298,12 +298,12 @@
 
     /*!
      * @if jp
-     * @brief ƒ}ƒl[ƒWƒƒ‚ªƒ}ƒXƒ^[‚©‚Ç‚¤‚©
+     * @brief マネージャがマスターかどうか
      *
-     * ‚±‚̊֐”‚̓}ƒl[ƒWƒƒ‚ªƒ}ƒXƒ^[‚©‚Ç‚¤‚©‚ð•Ô‚·BTrue‚È‚ç‚΁A“–ŠYƒ}
-     * ƒl[ƒWƒƒ‚̓}ƒXƒ^[‚Å‚ ‚èA‚»‚êˆÈŠO‚Í False ‚ð•Ô‚·B
+     * この関数はマネージャがマスターかどうかを返す。Trueならば、当該マ
+     * ネージャはマスターであり、それ以外は False を返す。
      *
-     * @return ƒ}ƒXƒ^[ƒ}ƒl[ƒWƒƒ‚©‚Ç‚¤‚©‚Ìbool’l
+     * @return マスターマネージャかどうかのbool値
      *
      * @else
      * @brief Whether this manager is master or not
@@ -319,13 +319,13 @@
 
     /*!
      * @if jp
-     * @brief ƒ}ƒXƒ^[ƒ}ƒl[ƒWƒƒ‚̎擾
+     * @brief マスターマネージャの取得
      *
-     * ‚±‚̃}ƒl[ƒWƒƒ‚ªƒXƒŒ[ƒuƒ}ƒl[ƒWƒƒ‚̏ꍇAƒ}ƒXƒ^[‚Æ‚È‚Á‚Ä‚¢‚éƒ}
-     * ƒl[ƒWƒƒ‚̃ŠƒXƒg‚ð•Ô‚·B‚±‚̃}ƒl[ƒWƒƒ‚ªƒ}ƒXƒ^[‚̏ꍇA‹ó‚̃ŠƒX
-     * ƒg‚ª•Ô‚éB
+     * このマネージャがスレーブマネージャの場合、マスターとなっているマ
+     * ネージャのリストを返す。このマネージャがマスターの場合、空のリス
+     * トが返る。
      *
-     * @return ƒ}ƒXƒ^[ƒ}ƒl[ƒWƒƒ‚̃ŠƒXƒg
+     * @return マスターマネージャのリスト
      *
      * @else
      * @brief Getting master managers
@@ -342,11 +342,11 @@
 
     /*!
      * @if jp
-     * @brief ƒ}ƒXƒ^[ƒ}ƒl[ƒWƒƒ‚̒ljÁ
+     * @brief マスターマネージャの追加
      *
-     * ‚±‚̃}ƒl[ƒWƒƒ‚̃}ƒXƒ^‚Æ‚µ‚ă}ƒl[ƒWƒƒ‚ðˆê‚’ljÁ‚·‚éB
+     * このマネージャのマスタとしてマネージャを一つ追加する。
      *
-     * @param mgr ƒ}ƒXƒ^[ƒ}ƒl[ƒWƒƒ
+     * @param mgr マスターマネージャ
      * @return ReturnCode_t
      *
      * @else
@@ -363,11 +363,11 @@
 
     /*!
      * @if jp
-     * @brief ƒ}ƒXƒ^[ƒ}ƒl[ƒWƒƒ‚̍폜
+     * @brief マスターマネージャの削除
      *
-     * ‚±‚̃}ƒl[ƒWƒƒ‚ª•ÛŽ‚·‚éƒ}ƒXƒ^‚Ì‚¤‚¿AŽw’肳‚ꂽ‚à‚Ì‚ðíœ‚·‚éB
+     * このマネージャが保持するマスタのうち、指定されたものを削除する。
      *
-     * @param mgr ƒ}ƒXƒ^[ƒ}ƒl[ƒWƒƒ
+     * @param mgr マスターマネージャ
      * @return ReturnCode_t
      *
      * @else
@@ -384,13 +384,13 @@
 
     /*!
      * @if jp
-     * @brief ƒXƒŒ[ƒuƒ}ƒl[ƒWƒƒ‚̎擾
+     * @brief スレーブマネージャの取得
      *
-     * ‚±‚̃}ƒl[ƒWƒƒ‚ªƒXƒŒ[ƒuƒ}ƒl[ƒWƒƒ‚̏ꍇAƒXƒŒ[ƒu‚Æ‚È‚Á‚Ä‚¢‚éƒ}
-     * ƒl[ƒWƒƒ‚̃ŠƒXƒg‚ð•Ô‚·B‚±‚̃}ƒl[ƒWƒƒ‚ªƒXƒŒ[ƒu‚̏ꍇA‹ó‚̃ŠƒX
-     * ƒg‚ª•Ô‚éB
+     * このマネージャがスレーブマネージャの場合、スレーブとなっているマ
+     * ネージャのリストを返す。このマネージャがスレーブの場合、空のリス
+     * トが返る。
      *
-     * @return ƒXƒŒ[ƒuƒ}ƒl[ƒWƒƒ‚̃ŠƒXƒg
+     * @return スレーブマネージャのリスト
      *
      * @else
      * @brief Getting slave managers
@@ -406,11 +406,11 @@
     ManagerList get_slave_managers();
     /*!
      * @if jp
-     * @brief ƒXƒŒ[ƒuƒ}ƒl[ƒWƒƒ‚̒ljÁ
+     * @brief スレーブマネージャの追加
      *
-     * ‚±‚̃}ƒl[ƒWƒƒ‚̃}ƒXƒ^‚Æ‚µ‚ă}ƒl[ƒWƒƒ‚ðˆê‚’ljÁ‚·‚éB
+     * このマネージャのマスタとしてマネージャを一つ追加する。
      *
-     * @param mgr ƒXƒŒ[ƒuƒ}ƒl[ƒWƒƒ
+     * @param mgr スレーブマネージャ
      * @return ReturnCode_t
      *
      * @else
@@ -427,11 +427,11 @@
 
     /*!
      * @if jp
-     * @brief ƒXƒŒ[ƒuƒ}ƒl[ƒWƒƒ‚̍폜
+     * @brief スレーブマネージャの削除
      *
-     * ‚±‚̃}ƒl[ƒWƒƒ‚ª•ÛŽ‚·‚éƒ}ƒXƒ^‚Ì‚¤‚¿AŽw’肳‚ꂽ‚à‚Ì‚ðíœ‚·‚éB
+     * このマネージャが保持するマスタのうち、指定されたものを削除する。
      *
-     * @param mgr ƒXƒŒ[ƒuƒ}ƒl[ƒWƒƒ
+     * @param mgr スレーブマネージャ
      * @return ReturnCode_t
      *
      * @else
@@ -450,6 +450,28 @@
     RTC::ReturnCode_t shutdown();
     RTC::ReturnCode_t restart();
 
+
+     /*!
+     * @if jp
+     * @brief 指定名のRTCオブジェクトリファレンスを取得
+     *
+     * 
+     *
+     * @param name RTC名
+     * @return RTCリスト
+     *
+     * @else
+     * @brief 
+     *
+     *
+     * 
+     * @param name name
+     * @return list of RTC
+     *
+     * @endig
+     */
+    RTC::RTCList get_components_by_name(in string name);
+
     Object get_service(in string name);
     //    ServiceProfileList get_service_profiles();
   };

Modified: trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerServant.java
===================================================================
--- trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerServant.java	2016-03-22 07:45:51 UTC (rev 803)
+++ trunk/OpenRTM-aist-Java/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerServant.java	2016-03-22 10:02:06 UTC (rev 804)
@@ -1,6 +1,7 @@
 package jp.go.aist.rtm.RTC;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
 
@@ -1240,6 +1241,55 @@
 */
     }
     /**
+     * {@.ja 指定名のRTCを取得}
+     * {@.en Get RTC Object.}
+     *
+     * @param name 
+     *   {@.ja RTC名}
+     *   {@.en RTC name}
+     *
+     * @return 
+     *   {@.ja RTCList}
+     *   {@.en RTCList}
+     *
+     * RTCList get_components_by_name(string name)
+     * 
+     */
+    public RTObject[] get_components_by_name(String name){
+        rtcout.println(Logbuf.TRACE, "get_components_by_name()");
+        Vector<RTObject_impl> rtcs = m_mgr.getComponents();
+        ArrayList<RTObject> crtcs = new ArrayList<RTObject>();
+        name.trim();
+        String[] rtc_name = name.split("/");
+        Iterator<RTObject_impl> iterator = rtcs.iterator();
+        while (iterator.hasNext()) {
+            RTObject_impl rtc = iterator.next();
+            if(rtc_name.length == 1){
+                if(rtc.getInstanceName().equals(rtc_name[0])){
+                    crtcs.add(rtc.getObjRef());
+                }
+            }
+            else{ 
+                if(rtc_name[0].equals("*")){
+                    if(rtc.getInstanceName().equals(rtc_name[1])){
+                        crtcs.add(rtc.getObjRef());
+                    }
+                }
+                else{
+                    if(rtc.getCategory().equals(rtc_name[0])){
+                        if(rtc.getInstanceName().equals(rtc_name[1])){
+                            crtcs.add(rtc.getObjRef());
+                        }
+                    }
+                }
+            }
+        }
+        
+       RTObject[] arr 
+               = (RTObject[])crtcs.toArray(new RTObject[0]);
+       return arr;
+    }
+    /**
      * <p></p>
      */
     private jp.go.aist.rtm.RTC.Manager m_mgr;



More information about the openrtm-commit mailing list