クラス テンプレート RTC::RingBuffer< DataType >

リングバッファ実装クラス [詳細]

#include <RingBuffer.h>

RTC::RingBuffer< DataType >に対する継承グラフ

RTC::BufferBase< DataType >

すべてのメンバ一覧

Public メソッド

 RingBuffer (long int length)
 コンストラクタ
virtual ~RingBuffer ()
 仮想デストラクタ
void init (DataType &data)
 初期化
virtual long int length () const
 バッファ長を取得する
virtual bool write (const DataType &value)
 バッファに書き込む
virtual bool read (DataType &value)
 バッファから読み出す
virtual bool isFull () const
 バッファが満杯であるか確認する
virtual bool isEmpty () const
 バッファが空であるか確認する
bool isNew () const
 最新データか確認する

Protected メソッド

virtual void put (const DataType &data)
 バッファにデータを格納する
virtual const DataType & get ()
 バッファからデータを取得する
virtual DataType & getRef ()
 次に書き込むバッファへの参照を取得する

構成

class  Data
 バッファ配列


説明

template<class DataType>
class RTC::RingBuffer< DataType >

リングバッファ実装クラス

指定した長さのリング状バッファを持つバッファ実装クラス。 バッファ全体にデータが格納された場合、以降のデータは古いデータから 順次上書きされる。 従って、バッファ内には直近のバッファ長分のデータのみ保持される。

注)現在の実装では、一番最後に格納したデータのみバッファから読み出し可能

引数:
DataType バッファに格納するデータ型
から:
0.4.0

コンストラクタとデストラクタ

template<class DataType>
RTC::RingBuffer< DataType >::RingBuffer ( long int  length  )  [inline]

コンストラクタ

コンストラクタ 指定されたバッファ長でバッファを初期化する。 ただし、指定された長さが2未満の場合、長さ2でバッファを初期化する。

引数:
length バッファ長

template<class DataType>
virtual RTC::RingBuffer< DataType >::~RingBuffer (  )  [inline, virtual]

仮想デストラクタ

仮想デストラクタ。


関数

template<class DataType>
void RTC::RingBuffer< DataType >::init ( DataType &  data  )  [inline]

初期化

バッファの初期化を実行する。 指定された値をバッファ全体に格納する。

引数:
data 初期化用データ

template<class DataType>
virtual long int RTC::RingBuffer< DataType >::length (  )  const [inline, virtual]

バッファ長を取得する

バッファ長を取得する。

戻り値:
バッファ長

RTC::BufferBase< DataType >を実装しています。

template<class DataType>
virtual bool RTC::RingBuffer< DataType >::write ( const DataType &  value  )  [inline, virtual]

バッファに書き込む

引数で与えられたデータをバッファに書き込む。

引数:
value 書き込み対象データ
戻り値:
データ書き込み結果(常にtrue:書き込み成功を返す)

RTC::BufferBase< DataType >を実装しています。

template<class DataType>
virtual bool RTC::RingBuffer< DataType >::read ( DataType &  value  )  [inline, virtual]

バッファから読み出す

バッファに格納されたデータを読み出す。

引数:
value 読み出したデータ
戻り値:
データ読み出し結果(常に true:読み出し成功 を返す)

RTC::BufferBase< DataType >を実装しています。

template<class DataType>
virtual bool RTC::RingBuffer< DataType >::isFull (  )  const [inline, virtual]

バッファが満杯であるか確認する

バッファ満杯を確認する。(常にfalseを返す。)

戻り値:
満杯確認結果(常にfalse)

RTC::BufferBase< DataType >を実装しています。

template<class DataType>
virtual bool RTC::RingBuffer< DataType >::isEmpty (  )  const [inline, virtual]

バッファが空であるか確認する

バッファ空を確認する。

注)現在の実装では,現在のバッファ位置に格納されたデータが読み出されたか どうかを返す。( true:データ読み出し済,false:データ未読み出し)

戻り値:
空確認結果

RTC::BufferBase< DataType >を実装しています。

template<class DataType>
bool RTC::RingBuffer< DataType >::isNew (  )  const [inline]

最新データか確認する

現在のバッファ位置に格納されているデータが最新データか確認する。

戻り値:
最新データ確認結果 ( true:最新データ.データはまだ読み出されていない false:過去のデータ.データは既に読み出されている)

template<class DataType>
virtual void RTC::RingBuffer< DataType >::put ( const DataType &  data  )  [inline, protected, virtual]

バッファにデータを格納する

引数で与えられたデータをバッファに格納する。

注)現在の実装ではデータを格納すると同時に、データの読み出し位置を 格納したデータ位置に設定している。このため、常に直近に格納したデータを 取得する形となっている。

引数:
data 格納対象データ

RTC::BufferBase< DataType >を実装しています。

template<class DataType>
virtual const DataType& RTC::RingBuffer< DataType >::get (  )  [inline, protected, virtual]

バッファからデータを取得する

バッファに格納されたデータを取得する。

戻り値:
取得データ

RTC::BufferBase< DataType >を実装しています。

template<class DataType>
virtual DataType& RTC::RingBuffer< DataType >::getRef (  )  [inline, protected, virtual]

次に書き込むバッファへの参照を取得する

書き込みバッファへの参照を取得する。

戻り値:
次の書き込み対象バッファへの参照

RTC::BufferBase< DataType >を実装しています。


OpenRTMに対してThu May 29 15:03:27 2008に生成されました。  doxygen 1.5.3