小田桐さま
安藤です
すみません。getInstanceName関数のことは忘れておりました。
修正いたします。
> OpenRTM-aist開発者各位
>
> お世話になっております。
> セック 小田桐です。
>
> 先日、安藤様から、1.0.0ではManager::createComponent()の引数で
> RTCのプロパティを与えることができるため、NumberingPolicyに
> 関係なくインスタンス名を強制的に上書きできる、とお聞きしました。
> そこで、早速試してみたですが、一部うまく動作していない箇所が
> ございましたので、ご報告いたします。
>
> SimpleIOのConsoleInComp.cppにて、以下のように、
> Manager::createComponent()呼び出し時にインスタンス名を与えました。
> manager->createComponent("ConsoleIn?instance_name=Test");
>
> RTCを生成した後、Manager::configureComponent()内で、与えられた
> プロパティをRTCに上書き(追加)することで、インスタンス名が
> 上書きされるようにしているのだと思います。
>
> しかし、この後、RTObject_impl::getInstanceName()を呼び出すと、
> 上書きしたインスタンス名(Test)ではなく、FactoryCXX::create内で
> 設定されたインスタンス名(ConsoleIn0)が返ってきます。
>
> 原因は、Manager::configureComponent()で上書きされるのは
> RTObject_implクラスのメンバ変数m_propertiesですが、
> RTObject_impl::getInstanceName()で取得できるインスタンス名は
> 別なメンバ変数m_profileから取得していることです。
> m_profileは、Manager::configureComponent()では上書きされません。
>
> RTObject_impl::get_component_profile()では、m_propertiesから
> インスタンス名を取得しているため正しく動作します。
>
> RTObject_implクラスからm_profileを削除し、getInstanceName()や
> getTypeName()などのメソッドも全てm_propertiesから値を
> 取得するようにしてはいかがでしょうか?
>
> 以上、ご検討をよろしくお願いいたします。
OpenRTM-aist開発者各位
お世話になっております。
セック 小田桐です。
先日、安藤様から、1.0.0ではManager::createComponent()の引数で
RTCのプロパティを与えることができるため、NumberingPolicyに
関係なくインスタンス名を強制的に上書きできる、とお聞きしました。
そこで、早速試してみたですが、一部うまく動作していない箇所が
ございましたので、ご報告いたします。
SimpleIOのConsoleInComp.cppにて、以下のように、
Manager::createComponent()呼び出し時にインスタンス名を与えました。
manager->createComponent("ConsoleIn?instance_name=Test");
RTCを生成した後、Manager::configureComponent()内で、与えられた
プロパティをRTCに上書き(追加)することで、インスタンス名が
上書きされるようにしているのだと思います。
しかし、この後、RTObject_impl::getInstanceName()を呼び出すと、
上書きしたインスタンス名(Test)ではなく、FactoryCXX::create内で
設定されたインスタンス名(ConsoleIn0)が返ってきます。
原因は、Manager::configureComponent()で上書きされるのは
RTObject_implクラスのメンバ変数m_propertiesですが、
RTObject_impl::getInstanceName()で取得できるインスタンス名は
別なメンバ変数m_profileから取得していることです。
m_profileは、Manager::configureComponent()では上書きされません。
RTObject_impl::get_component_profile()では、m_propertiesから
インスタンス名を取得しているため正しく動作します。
RTObject_implクラスからm_profileを削除し、getInstanceName()や
getTypeName()などのメソッドも全てm_propertiesから値を
取得するようにしてはいかがでしょうか?
以上、ご検討をよろしくお願いいたします。