操作
機能 #3404
完了⑤ コンポーネント起動時に事前設定に従い起動時にポート同士を接続する(非同一プロセス)
開始日:
2015/12/22
期日:
2016/03/25
進捗率:
100%
予定工数:
20.00時間
説明
コンポーネントコンフィギュレーションファイルに設定することで、起動時にネームサーバに登録されているコンポーネントのポート同士を接続する機能を実装すること。
ファイル
操作
100%
説明
コンポーネントコンフィギュレーションファイルに設定することで、起動時にネームサーバに登録されているコンポーネントのポート同士を接続する機能を実装すること。
ファイル
test_Manager_new2.py (5.78 KB) test_Manager_new2.py | miyamoto, 2016/02/26 18:33 |
#3402で実装したinitPreConnection関数内に非同一プロセスで起動したRTCのポートを接続する機能を追加した。
具体的には#3411のrtcloc形式、および#3401で実装したrtcname形式が利用できる。
rtcname形式は以下のように記述できる。
rtc.confには以下のように記述する事で、ポートの接続が行われる。
manager.components.preconnect:rtcloc://localhost:2810/example/TestComp20.in^TestComp10.out() manager.components.preconnect:rtcname://localhost:2809/test.host_cxt/TestComp20.in^TestComp10.out()
ポート名の間には":"を記述していたが、rtcloc形式の記述内に":"が存在するため"^"に変更した。
ポートを保持しているオブジェクトリファレンスの取得には#3411で実装したNamingManagerクラスのstring_to_component関数を利用した。
またrtcname形式でのオブジェクトリファレンス取得のためにCorbaOnNamingクラスにstring_to_component関数を追加した。
添付のコードのtest_PreConnection関数でテストを行った。
まず2つのプロセスでRTCを起動し、managerのinit関数で別プロセスで起動したRTCのポートと接続するように設定した。そしてtest_PreConnection関数内でalready_connected関数により接続を確認した。