Public Types | Public Member Functions | Private Attributes
RTT::base::BufferUnSync< T > Class Template Reference

#include <BufferUnSync.hpp>

Inheritance diagram for RTT::base::BufferUnSync< T >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef BufferInterface< T >
::param_t 
param_t
typedef BufferInterface< T >
::reference_t 
reference_t
typedef BufferInterface< T >
::size_type 
size_type
typedef T value_t

Public Member Functions

 BufferUnSync (size_type size, const T &initial_value=T(), bool circular=false)
size_type capacity () const
void clear ()
virtual void data_sample (const T &sample)
virtual T data_sample () const
bool empty () const
bool full () const
bool Pop (reference_t item)
size_type Pop (std::vector< T > &items)
value_tPopWithoutRelease ()
bool Push (param_t item)
size_type Push (const std::vector< T > &items)
void Release (value_t *item)
size_type size () const
 ~BufferUnSync ()

Private Attributes

std::deque< T > buf
size_type cap
value_t lastSample
const bool mcircular

Detailed Description

template<class T>
class RTT::base::BufferUnSync< T >

Implements a not threadsafe buffer. Only use when no more than one thread accesses this buffer at a time.

See also:
BufferLockFree, BufferUnSync

Definition at line 58 of file BufferUnSync.hpp.


Member Typedef Documentation

template<class T>
typedef BufferInterface<T>::param_t RTT::base::BufferUnSync< T >::param_t

Reimplemented from RTT::base::BufferInterface< T >.

Definition at line 63 of file BufferUnSync.hpp.

template<class T>
typedef BufferInterface<T>::reference_t RTT::base::BufferUnSync< T >::reference_t

Reimplemented from RTT::base::BufferInterface< T >.

Definition at line 62 of file BufferUnSync.hpp.

template<class T>
typedef BufferInterface<T>::size_type RTT::base::BufferUnSync< T >::size_type

Reimplemented from RTT::base::BufferInterface< T >.

Definition at line 64 of file BufferUnSync.hpp.

template<class T>
typedef T RTT::base::BufferUnSync< T >::value_t

Reimplemented from RTT::base::BufferInterface< T >.

Definition at line 65 of file BufferUnSync.hpp.


Constructor & Destructor Documentation

template<class T>
RTT::base::BufferUnSync< T >::BufferUnSync ( size_type  size,
const T &  initial_value = T(),
bool  circular = false 
) [inline]

Create a buffer of size size.

Definition at line 70 of file BufferUnSync.hpp.

template<class T>
RTT::base::BufferUnSync< T >::~BufferUnSync ( ) [inline]

Destructor

Definition at line 90 of file BufferUnSync.hpp.


Member Function Documentation

template<class T>
size_type RTT::base::BufferUnSync< T >::capacity ( ) const [inline, virtual]

Returns the maximum number of items that can be stored in the buffer.

Returns:
maximum number of items.

Implements RTT::base::BufferBase.

Definition at line 169 of file BufferUnSync.hpp.

template<class T>
void RTT::base::BufferUnSync< T >::clear ( ) [inline, virtual]

Clears all contents of this buffer.

Implements RTT::base::BufferBase.

Definition at line 177 of file BufferUnSync.hpp.

template<class T>
virtual void RTT::base::BufferUnSync< T >::data_sample ( const T &  sample) [inline, virtual]

Initializes this buffer with a data sample, such that for dynamical allocated types T, the buffer can reserve place to hold these elements.

Postcondition:
Calling this function causes all data in the buffer to be lost and the size being reset to zero.

Implements RTT::base::BufferInterface< T >.

Definition at line 76 of file BufferUnSync.hpp.

template<class T>
virtual T RTT::base::BufferUnSync< T >::data_sample ( ) const [inline, virtual]

Reads back a data sample.

Implements RTT::base::BufferInterface< T >.

Definition at line 82 of file BufferUnSync.hpp.

template<class T>
bool RTT::base::BufferUnSync< T >::empty ( ) const [inline, virtual]

Check if this buffer is empty.

Returns:
true if size() == 0

Implements RTT::base::BufferBase.

Definition at line 181 of file BufferUnSync.hpp.

template<class T>
bool RTT::base::BufferUnSync< T >::full ( ) const [inline, virtual]

Check if this buffer is full.

Returns:
true if size() == capacity()

Implements RTT::base::BufferBase.

Definition at line 185 of file BufferUnSync.hpp.

template<class T>
bool RTT::base::BufferUnSync< T >::Pop ( reference_t  item) [inline, virtual]

Read the oldest value from the buffer.

Parameters:
itemis to be set with a value from the buffer.
Returns:
true if something was read.

Implements RTT::base::BufferInterface< T >.

Definition at line 125 of file BufferUnSync.hpp.

template<class T>
size_type RTT::base::BufferUnSync< T >::Pop ( std::vector< T > &  items) [inline, virtual]

Read the whole buffer.

Parameters:
itemsis to be filled with all values in the buffer, with items.begin() the oldest value.
Returns:
the number of items read.

Implements RTT::base::BufferInterface< T >.

Definition at line 135 of file BufferUnSync.hpp.

template<class T>
value_t* RTT::base::BufferUnSync< T >::PopWithoutRelease ( ) [inline, virtual]

Returns a pointer to the first element in the buffer. The pointer is only garanteed to stay valid until the next pop operation.

Note the pointer needs the be released by calling Release on the buffer.

Returns:
a pointer to a sample or Zero if buffer is empty

Implements RTT::base::BufferInterface< T >.

Definition at line 147 of file BufferUnSync.hpp.

template<class T>
bool RTT::base::BufferUnSync< T >::Push ( param_t  item) [inline, virtual]

Write a single value to the buffer.

Parameters:
itemthe value to write
Returns:
false if the buffer is full.

Implements RTT::base::BufferInterface< T >.

Definition at line 92 of file BufferUnSync.hpp.

template<class T>
size_type RTT::base::BufferUnSync< T >::Push ( const std::vector< T > &  items) [inline, virtual]

Write a sequence of values to the buffer.

Parameters:
itemsthe values to write
Returns:
the number of values written (may be less than items.size())

Implements RTT::base::BufferInterface< T >.

Definition at line 104 of file BufferUnSync.hpp.

template<class T>
void RTT::base::BufferUnSync< T >::Release ( value_t item) [inline, virtual]

Releases the pointer

Parameters:
itempointer aquired using PopWithoutRelease()

Implements RTT::base::BufferInterface< T >.

Definition at line 162 of file BufferUnSync.hpp.

template<class T>
size_type RTT::base::BufferUnSync< T >::size ( ) const [inline, virtual]

Returns the actual number of items that are stored in the buffer.

Returns:
number of items.

Implements RTT::base::BufferBase.

Definition at line 173 of file BufferUnSync.hpp.


Member Data Documentation

template<class T>
std::deque<T> RTT::base::BufferUnSync< T >::buf [private]

Definition at line 190 of file BufferUnSync.hpp.

template<class T>
size_type RTT::base::BufferUnSync< T >::cap [private]

Definition at line 189 of file BufferUnSync.hpp.

template<class T>
value_t RTT::base::BufferUnSync< T >::lastSample [private]

Definition at line 191 of file BufferUnSync.hpp.

template<class T>
const bool RTT::base::BufferUnSync< T >::mcircular [private]

Definition at line 192 of file BufferUnSync.hpp.


The documentation for this class was generated from the following file:


rtt
Author(s): RTT Developers
autogenerated on Sat Jun 8 2019 18:46:37