20#ifndef RTC_BUFFERBASE_H
21#define RTC_BUFFERBASE_H
24#include <coil/Properties.h>
104 template <
class DataType>
133 virtual void init(
const coil::Properties& prop) = 0;
230 virtual DataType*
wptr(
long int n = 0) = 0;
309 std::chrono::nanoseconds timeout
310 = std::chrono::nanoseconds(-1)) = 0;
377 virtual DataType*
rptr(
long int n = 0) = 0;
449 virtual DataType&
get() = 0;
475 std::chrono::nanoseconds nsec
476 = std::chrono::nanoseconds(-1)) = 0;
550 template <
class DataType>
645 virtual bool write(
const DataType& value)
674 virtual bool read(DataType& value)
748 virtual void put(
const DataType& data)
772 virtual const DataType&
get()
Buffer status enum definition
BufferBase 抽象クラス
Definition BufferBase.h:106
virtual size_t writable() const =0
バッファに書込み可能な要素数
virtual BufferStatus advanceRptr(long int n=1, bool unlock_enable=true)=0
読み出しポインタを進める
virtual BufferStatus put(const DataType &value)=0
バッファにデータを書き込む
virtual size_t length() const =0
バッファの長さを取得する
virtual BufferStatus get(DataType &value)=0
バッファからデータを読み出す
virtual DataType & get()=0
バッファからデータを読み出す
virtual ~BufferBase()=default
仮想デストラクタ
virtual void init(const coil::Properties &prop)=0
バッファの設定
virtual BufferStatus reset()=0
バッファの状態をリセットする
virtual size_t readable() const =0
バッファから読み出し可能な要素数
virtual BufferStatus read(DataType &value, std::chrono::nanoseconds nsec=std::chrono::nanoseconds(-1))=0
バッファからデータを読み出す
virtual BufferStatus length(size_t n)=0
バッファの長さをセットする
virtual BufferStatus write(const DataType &value, std::chrono::nanoseconds timeout=std::chrono::nanoseconds(-1))=0
バッファにデータを書き込む
virtual DataType * wptr(long int n=0)=0
バッファの現在の書込み要素のポインタ
virtual bool full() const =0
バッファfullチェック
virtual DataType * rptr(long int n=0)=0
バッファの現在の読み出し要素のポインタ
virtual bool empty() const =0
バッファemptyチェック
virtual BufferStatus advanceWptr(long int n=1, bool unlock_enable=true)=0
書込みポインタを進める
ダミーバッファ実装クラス
Definition BufferBase.h:553
virtual void put(const DataType &data)
バッファにデータを格納
Definition BufferBase.h:748
virtual bool isFull() const
バッファfullチェック
Definition BufferBase.h:699
virtual const DataType & get()
バッファからデータを取得する
Definition BufferBase.h:772
virtual long int length() const
バッファ長(1固定)を取得する
Definition BufferBase.h:617
virtual ~NullBuffer()=default
デストラクタ
virtual DataType & getRef()
次に書き込むバッファへの参照を取得する
Definition BufferBase.h:799
NullBuffer(long int size=1)
コンストラクタ
Definition BufferBase.h:576
virtual bool read(DataType &value)
バッファからデータを読み出す
Definition BufferBase.h:674
virtual bool write(const DataType &value)
バッファにデータを書き込む
Definition BufferBase.h:645
virtual bool isEmpty() const
バッファemptyチェック
Definition BufferBase.h:723
BufferStatus
BufferStatus リターンコード
Definition BufferStatus.h:57