[openrtm-staff:1239] Re: オブザーバの使用方法について

Ando Noriaki n-ando @ aist.go.jp
2017年 11月 21日 (火) 11:20:04 JST


坂本様

安藤です

CORBA::Object_var obj = mgr_.getPOA()->id_to_reference(oid_.in());
でだめなら、
servant_ = new ComponentObserverImpl();
CORBA::Object_var obj = servant._this();
とかでしょうか?
わざわざObjectIdからリファレンスを取得しているのには何か理由があるのでしょうか?
デフォルトPOA以外のPOAを使っているとか?

あと参考になるのは、CorbaPort.h の CorbaProviderHolder でしょうか?
ここなら、サーバントのポインタを受け取って、IORを取得するところまでやっていますね。

宮本君

あとよろしく。


2017年11月21日 10:18 Sakamoto Takeshi <sakamoto @ globalassist.co.jp>:

> 安藤 様
>
>
> いつもお世話になっております.
> グローバルアシストの坂本です.
>
> ご連絡ありがとうございます.
> 本当に何度もご面倒をお掛けしてしまい,たいへん申し訳ございません.
>
> > OpenRTM::ComponentObserver_var _provider = mgr_.getPOA()->id_to_
> > reference(oid_.in());
> > ではなく、
> > CORBA::Object_var obj = mgr_.getPOA()->id_to_reference(oid_.in());
> > OpenRTM::ComponentObserver_var _provider =
> > OpenRTM::ComponentObserver::_narrow(obj);
> > のように、CORBA::Object 型から特定の方にnarrowが必要です。
> アドバイスありがとうございます.
>
> ただ,上記のコードに変更して試してみたのですが,
> 実行時に以下の部分で落ちてしまいました.
> CORBA::Object_var obj = mgr_.getPOA()->id_to_reference(oid_.in());
>
> > この辺のコードは ManagerServant.cpp などにも同じものがありますので参考にしてください。
> こちらも情報ありがとうございます.
> 今回の処理と似た処理を行っている部分は「createINSManager」の部分でしょうか?
> (_narrowを行っているのが,createINSManagerとfindManagerでしたので・・・)
> 再度,こちらを参考に修正を行わせて頂きます.
>
> #CORBA::Object_var mgrobj = poa->id_to_reference(id);
> #を実行する前に,
> #poa->activate_object_with_id(id.in(), this);
> #を実行する必要があるのでしょうか・・・試しに
> #mgr_.getPOA()->activate_object_with_id(oid.in(), servant);
> #としてみた所,ここで落ちてしまったのですが・・・
>
> よろしくお願いいたします.
>
> > 安藤です
> >
> > すみません、narrow しないとダメでした。
> >
> > OpenRTM::ComponentObserver_var _provider = mgr_.getPOA()->id_to_
> > reference(oid_.in());
> > ではなく、
> > CORBA::Object_var obj = mgr_.getPOA()->id_to_reference(oid_.in());
> > OpenRTM::ComponentObserver_var _provider =
> > OpenRTM::ComponentObserver::_narrow(obj);
> > のように、CORBA::Object 型から特定の方にnarrowが必要です。
> >
> > この辺のコードは ManagerServant.cpp などにも同じものがありますので参考にしてください。
> >
>
> -----------
> 株式会社 グローバルアシスト
> 坂本 武志
> sakamoto @ globalassist.co.jp
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.openrtm.org/pipermail/openrtm-staff/attachments/20171121/38707b70/attachment.html>


More information about the openrtm-staff mailing list