[openrtm-users 00505] onWrite コールバック

Yoshiji Yasu Yoshiji.Yasu @ kek.jp
2008年 7月 8日 (火) 18:47:33 JST


KEKの安と申します。
安藤さんからPipe.tar.gzというファイルをいただきました。これは
ConsoleOut/ConsoleInの間にいれてPipeのような役割をonWrite コールバックを
利用して実現させています。私は性能テストのためにこれを利用しようとしてい
ます。この例題ではOutPortにはDataTypeしか与えていません。私の場合は
MyRingBufferという独自のリングバッファを作りました。これは
mutex/condition variableを使ってproducer/consumerモデルでバッファを実現
しています。そのためMyRingBufferをOutPortに入れる必要があります。そこで、
template <class DataType, class BufferType>
class DirectInOut : public RTC::OnWrite<DataType> {
OutPort<DataType, BufferType>& m_out;
public:
DirectInOut(OutPort<DataType, BufferType>& out) : m_out(out) {}
virtual void operator() (const DataType& value) {
m_out.write(value);
}


  DirectInOut<TimedLongSeq, MyRingBuffer> m_InOut;
}
という具合にしました。安藤さんもNullBufferを使ってこれをテストされていて
問題がないということのようですが、私の場合はうまくいっていません。エラー
メッセージは
type/value mismatch at argument in template parameter list for
'template<class DataType, template<class DataType> class Buffer> class
RTC::OutPort'
です。これは
OutPort<DataType, BufferType>& m_out;
のところで起こっています。
ソースコードを同封しますので、コメットいただけると助かります。
-- Yoshiji Yasu @ Online group, Institute of Particle and Nuclear
Studies, High Energy Accelerator Research Organization ( KEK ), E-mail :
Yoshiji.YASU @ kek.jp

-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: Pipe.tar.gz
型:         application/x-gzip
サイズ:     150096 バイト
説明:       無し
URL:        <http://www.openrtm.org/pipermail/openrtm-users/attachments/20080708/471c5395/attachment-0001.bin>
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: MyRingBuffer.h
URL:  <http://www.openrtm.org/pipermail/openrtm-users/attachments/20080708/471c5395/attachment-0002.h>
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: proc2.h
URL:  <http://www.openrtm.org/pipermail/openrtm-users/attachments/20080708/471c5395/attachment-0003.h>
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: proc2.cpp
URL:  <http://www.openrtm.org/pipermail/openrtm-users/attachments/20080708/471c5395/attachment-0001.ksh>


openrtm-users メーリングリストの案内