[openrtm-users 00812] NullBuffer

2 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 2日 4時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00812] NullBuffer

OpenRTM-aist開発者の皆様

ポート(バッファ)のソースを眺めていて思ったのですが、
NullBufferはコンパイルエラーにならないですか?

BufferBase::write(const DataType& value,
long int sec = -1, long int nsec = -1);
とその派生クラスの
NullBuffer::write(const DataType& value);
があるのですが、デフォルト引数のために、
これらは一意に決まらないように思います。
試してないので、もしかしたら私が間違いかもしれません。

静岡大 清水

未定義
root
オフライン
Last seen: 2日 4時間 前
登録日: 2009-06-23 14:31
[openrtm-users 00813] NullBuffer

清水様

安藤です

以前はInPort,OutPortクラスの
テンプレートの第2引数にバッファを渡せるようにして
いましたが、1.0では第2引数はなくなりました。

OutPortでは、接続毎にConnectorオブジェクトが生成
され、バッファも同時に生成されます。つまり、接続毎に
バッファを持つようになります。
従いまして、0.4で存在した、複数のInPortへの出力が
できないというバグはなくなりました。

InPortでは、現在の実装では、接続に対してバッファは共有
されていますので、以前の挙動と変わりありません。
原理的には、接続毎にバッファ持たせることもできるようになっていて、
複数のOutPortからの入力を選択的に受け取ることが
できるようにもなっています。これはInPortMultとでも名前を
つけてじきに使えるようにはしたいと思っています。

バッファを動的に生成するといいましたが、生成するバッファは
ユーザが拡張できるようにもなっています。さらに、それを
ローダブルモジュールであとから追加できるようにも
なっています。が、ドキュメントを書いていないので、
実質ユーザが独自のバッファを拡張するのは難しそうですので、
現在のところ使用されるバッファはRingBufferのみとい前提で、
NullBufferについては放置しております。

ちなみに、バッファを接続毎に動的に生成可能にし、かつ
ローダブルモジュールで拡張可能にしたのは、将来的に
InPort/OutPortのバッファをコンポーネント間で共有する
(たとえば共有メモリで)タイプのバッファなどに拡張可能にするためです。

2009/06/04 2:49 に Masayuki Shimizu さんは書きました:
> OpenRTM-aist開発者の皆様
>
> ポート(バッファ)のソースを眺めていて思ったのですが、
> NullBufferはコンパイルエラーにならないですか?
>
> BufferBase::write(const DataType& value,
> long int sec = -1, long int nsec = -1);
> とその派生クラスの
> NullBuffer::write(const DataType& value);
> があるのですが、デフォルト引数のために、
> これらは一意に決まらないように思います。
> 試してないので、もしかしたら私が間違いかもしれません。
>
> 静岡大 清水
>
>

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2195
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク