クラス テンプレート RTC::InPort< DataType, Buffer >

InPort テンプレートクラス [詳細]

#include <InPort.h>

すべてのメンバ一覧

Public メソッド

 InPort (const char *name, DataType &value, int bufsize=64, bool read_block=false, bool write_block=false, int read_timeout=0, int write_timeout=0)
 コンストラクタ
virtual ~InPort ()
 デストラクタ
virtual const char * name ()
 ポート名称を取得する。
bool write (const DataType &value)
 DataPort に値を書き込む
DataType read ()
 DataPort から値を読み出す
virtual void init (DataType &value)
 InPort 内のリングバッファの値を初期化
void update ()
 バインドされた T 型の変数に InPort バッファの最新値を読み込む
void operator>> (DataType &rhs)
 T 型のデータへ InPort の最新値データを読み込む
void operator<< (DataType &value)
 T 型のデータを DataPort へ書き込み
void setOnWrite (OnWrite< DataType > *on_write)
 InPort バッファへデータ入力時のコールバックの設定
void setOnWriteConvert (OnWriteConvert< DataType > *on_wconvert)
 InPort バッファへデータ書き込み時のコールバックの設定
void setOnRead (OnRead< DataType > *on_read)
 InPort バッファへデータ読み込み時のコールバックの設定
void setOnReadConvert (OnReadConvert< DataType > *on_rconvert)
 InPort バッファへデータ読み出し時のコールバックの設定
void setOnOverflow (OnOverflow< DataType > *on_overflow)
 InPort バッファへバッファオーバーフロー時のコールバックの設定
void setOnUnderflow (OnUnderflow< DataType > *on_underflow)
 InPort バッファへバッファアンダーフロー時のコールバックの設定


説明

template<class DataType, template< class DataType > class Buffer = RingBuffer>
class RTC::InPort< DataType, Buffer >

InPort テンプレートクラス

InPort の実装である InPort<T> のテンプレートクラス。 <T> はBasicDataType.idl にて定義されている型で、メンバとして Time 型の tm , および T型の data を持つ構造体でなくてはならない。 InPort は内部にリングバッファを持ち、外部から送信されたデータを順次 このリングバッファに格納する。リングバッファのサイズはデフォルトで64と なっているが、コンストラクタ引数によりサイズを指定することができる。 データはフラグによって未読、既読状態が管理され、isNew(), write(), read(), isFull(), isEmpty() 等のメソッドによりハンドリングすることができる。

から:
0.2.0

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

template<class DataType, template< class DataType > class Buffer = RingBuffer>
RTC::InPort< DataType, Buffer >::InPort ( const char *  name,
DataType &  value,
int  bufsize = 64,
bool  read_block = false,
bool  write_block = false,
int  read_timeout = 0,
int  write_timeout = 0 
) [inline]

コンストラクタ

コンストラクタ。 パラメータとして与えられる T 型の変数にバインドされる。

引数:
name InPort 名。InPortBase:name() により参照される。
value この InPort にバインドされる T 型の変数
bufsize InPort 内部のリングバッファのバッファ長(デフォルト値:64)
read_block 読込ブロックフラグ。 データ読込時に未読データがない場合、次のデータ受信までブロックする かどうかを設定(デフォルト値:false)
write_block 書込ブロックフラグ。 データ書込時にバッファがフルであった場合、バッファに空きができる までブロックするかどうかを設定(デフォルト値:false)
read_timeout 読込ブロックを指定していない場合の、データ読取タイム アウト時間(ミリ秒)(デフォルト値:0)
write_timeout 書込ブロックを指定していない場合の、データ書込タイム アウト時間(ミリ秒)(デフォルト値:0)

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

デストラクタ

デストラクタ。


関数

template<class DataType, template< class DataType > class Buffer = RingBuffer>
virtual const char* RTC::InPort< DataType, Buffer >::name (  )  [inline, virtual]

ポート名称を取得する。

ポート名称を取得する。

戻り値:
ポート名称

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

DataPort に値を書き込む

DataPort に値を書き込む。

引数:
value 書込対象データ
戻り値:
書込処理結果(書込成功:true、書込失敗:false)

template<class DataType, template< class DataType > class Buffer = RingBuffer>
DataType RTC::InPort< DataType, Buffer >::read (  )  [inline]

DataPort から値を読み出す

DataPort から値を読み出す

戻り値:
読み出したデータ

template<class DataType, template< class DataType > class Buffer = RingBuffer>
virtual void RTC::InPort< DataType, Buffer >::init ( DataType &  value  )  [inline, virtual]

InPort 内のリングバッファの値を初期化

InPort 内のリングバッファの値を指定した値で初期化する。 (現状ではコメントアウト)

引数:
value 初期化対象データ

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::update (  )  [inline]

バインドされた T 型の変数に InPort バッファの最新値を読み込む

バインドされた T 型のデータに InPort の最新値を読み込む。 コンストラクタで T 型の変数と InPort がバインドされていなければならない。 このメソッドはポリモーフィックに使用される事を前提としているため、 型に依存しない引数、戻り値となっている。

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::operator>> ( DataType &  rhs  )  [inline]

T 型のデータへ InPort の最新値データを読み込む

InPort に設定されている最新データを読み込み、 指定されたデータ変数に設定する。

引数:
rhs InPort バッファから値を読み込む T 型変数

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::operator<< ( DataType &  value  )  [inline]

T 型のデータを DataPort へ書き込み

設定された T 型のデータをDataPortに書き込む。

引数:
value DaraPort へ書き込む T 型変数

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::setOnWrite ( OnWrite< DataType > *  on_write  )  [inline]

InPort バッファへデータ入力時のコールバックの設定

InPort が持つバッファにデータがputされたときに呼ばれるコールバック オブジェクトを設定する。設定されるコールバックオブジェクトは InPort<DataType>::OnPutクラスを継承し、引数 const DataType& 、 戻り値 void の operator() 関数が実装されている必要がある。

struct MyOnPutCallback : public InPort<DataType> {
void operator()(const DataType data) {
処理
}
};
のようにコールバックオブジェクトを実装し、

m_inport.setOnPut(new MyOnPutCallback());
のようにコールバックオブジェクトをセットする。

引数:
on_write OnWrite<DataType>型のオブジェクト

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::setOnWriteConvert ( OnWriteConvert< DataType > *  on_wconvert  )  [inline]

InPort バッファへデータ書き込み時のコールバックの設定

InPort が持つバッファにデータ書き込まれる時に呼ばれるコールバック オブジェクトを設定する。バッファにはコールバックオブジェクトの 戻り値が設定される。

引数:
on_wconvert OnWriteConvert<DataType>型のオブジェクト

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::setOnRead ( OnRead< DataType > *  on_read  )  [inline]

InPort バッファへデータ読み込み時のコールバックの設定

InPort が持つバッファからデータが読み込まれる直前に呼ばれるコールバック オブジェクトを設定する。

引数:
on_read OnRead<DataType>型のオブジェクト

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::setOnReadConvert ( OnReadConvert< DataType > *  on_rconvert  )  [inline]

InPort バッファへデータ読み出し時のコールバックの設定

InPort が持つバッファからデータが読み出される際に呼ばれるコールバック オブジェクトを設定する。コールバックオブジェクトの戻り値がread()メソッド の呼出結果となる。

引数:
on_rconvert OnReadConvert<DataType>型のオブジェクト

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::setOnOverflow ( OnOverflow< DataType > *  on_overflow  )  [inline]

InPort バッファへバッファオーバーフロー時のコールバックの設定

InPort が持つバッファでバッファオーバーフローが検出された際に呼び出される コールバックオブジェクトを設定する。

引数:
on_overflow OnOverflow<DataType>型のオブジェクト

template<class DataType, template< class DataType > class Buffer = RingBuffer>
void RTC::InPort< DataType, Buffer >::setOnUnderflow ( OnUnderflow< DataType > *  on_underflow  )  [inline]

InPort バッファへバッファアンダーフロー時のコールバックの設定

InPort が持つバッファでバッファアンダーフローが検出された際に呼び出される コールバックオブジェクトを設定する。

引数:
on_underflow OnUnderflow<DataType>型のオブジェクト


OpenRTMに対してWed May 21 05:17:25 2008に生成されました。  doxygen 1.5.3