Orocos Real-Time Toolkit
2.8.3
|
A Buffer is an object which is used to store (Push) and retrieve (Pop) values from. More...
#include <rtt/base/BufferInterface.hpp>
Public Types | |
typedef T | value_t |
typedef BufferBase::size_type | size_type |
typedef boost::shared_ptr< BufferInterface< T > > | shared_ptr |
typedef boost::call_traits< T >::param_type | param_t |
typedef boost::call_traits< T >::reference | reference_t |
Public Member Functions | |
virtual | ~BufferInterface () |
virtual bool | Pop (reference_t item)=0 |
Read the oldest value from the buffer. More... | |
virtual size_type | Pop (std::vector< value_t > &items)=0 |
Read the whole buffer. More... | |
virtual value_t * | PopWithoutRelease ()=0 |
Returns a pointer to the first element in the buffer. More... | |
virtual void | Release (value_t *item)=0 |
Releases the pointer. More... | |
virtual bool | Push (param_t item)=0 |
Write a single value to the buffer. More... | |
virtual size_type | Push (const std::vector< value_t > &items)=0 |
Write a sequence of values to the buffer. More... | |
virtual void | data_sample (const T &sample)=0 |
Initializes this buffer with a data sample, such that for dynamical allocated types T, the buffer can reserve place to hold these elements. More... | |
virtual T | data_sample () const =0 |
Reads back a data sample. More... | |
virtual size_type | capacity () const =0 |
Returns the maximum number of items that can be stored in the buffer. More... | |
virtual size_type | size () const =0 |
Returns the actual number of items that are stored in the buffer. More... | |
virtual bool | empty () const =0 |
Check if this buffer is empty. More... | |
virtual bool | full () const =0 |
Check if this buffer is full. More... | |
virtual void | clear ()=0 |
Clears all contents of this buffer. More... | |
virtual size_type | dropped () const =0 |
Returns the number of dropped samples, because the buffer was full. More... | |
A Buffer is an object which is used to store (Push) and retrieve (Pop) values from.
T | The value type stored in this buffer. |
Definition at line 55 of file BufferInterface.hpp.
typedef boost::call_traits<T>::param_type RTT::base::BufferInterface< T >::param_t |
Definition at line 63 of file BufferInterface.hpp.
typedef boost::call_traits<T>::reference RTT::base::BufferInterface< T >::reference_t |
Definition at line 64 of file BufferInterface.hpp.
typedef boost::shared_ptr< BufferInterface<T> > RTT::base::BufferInterface< T >::shared_ptr |
Definition at line 62 of file BufferInterface.hpp.
typedef BufferBase::size_type RTT::base::BufferInterface< T >::size_type |
Definition at line 60 of file BufferInterface.hpp.
typedef T RTT::base::BufferInterface< T >::value_t |
Definition at line 59 of file BufferInterface.hpp.
|
inlinevirtual |
|
pure virtualinherited |
Returns the maximum number of items that can be stored in the buffer.
Implemented in RTT::base::BufferLocked< T >, RTT::base::BufferUnSync< T >, and RTT::base::BufferLockFree< T >.
Referenced by RTT::internal::ChannelBufferElement< T >::getBufferSize().
|
pure virtualinherited |
Clears all contents of this buffer.
Implemented in RTT::base::BufferLocked< T >, RTT::base::BufferUnSync< T >, and RTT::base::BufferLockFree< T >.
Referenced by RTT::internal::ChannelBufferElement< T >::clear().
|
pure virtual |
Initializes this buffer with a data sample, such that for dynamical allocated types T, the buffer can reserve place to hold these elements.
Implemented in RTT::base::BufferLockFree< T >, RTT::base::BufferLocked< T >, and RTT::base::BufferUnSync< T >.
Referenced by RTT::internal::ChannelBufferElement< T >::data_sample().
|
pure virtual |
Reads back a data sample.
Implemented in RTT::base::BufferLockFree< T >, RTT::base::BufferLocked< T >, and RTT::base::BufferUnSync< T >.
Referenced by RTT::base::BufferInterface< T >::~BufferInterface().
|
pure virtualinherited |
Returns the number of dropped samples, because the buffer was full.
Implemented in RTT::base::BufferLocked< T >, RTT::base::BufferUnSync< T >, and RTT::base::BufferLockFree< T >.
Referenced by RTT::internal::ChannelBufferElement< T >::getNumDroppedSamples().
|
pure virtualinherited |
Check if this buffer is empty.
Implemented in RTT::base::BufferLocked< T >, RTT::base::BufferUnSync< T >, and RTT::base::BufferLockFree< T >.
|
pure virtualinherited |
Check if this buffer is full.
Implemented in RTT::base::BufferLocked< T >, RTT::base::BufferUnSync< T >, and RTT::base::BufferLockFree< T >.
|
pure virtual |
Read the oldest value from the buffer.
item | is to be set with a value from the buffer. |
Implemented in RTT::base::BufferLockFree< T >, RTT::base::BufferLocked< T >, and RTT::base::BufferUnSync< T >.
Referenced by RTT::base::BufferInterface< T >::~BufferInterface().
|
pure virtual |
Read the whole buffer.
items | is to be filled with all values in the buffer, with items.begin() the oldest value. |
Implemented in RTT::base::BufferLockFree< T >, RTT::base::BufferLocked< T >, and RTT::base::BufferUnSync< T >.
|
pure 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.
Implemented in RTT::base::BufferLockFree< T >, RTT::base::BufferLocked< T >, and RTT::base::BufferUnSync< T >.
Referenced by RTT::internal::ChannelBufferElement< T >::read(), and RTT::base::BufferInterface< T >::~BufferInterface().
|
pure virtual |
Write a single value to the buffer.
item | the value to write |
Implemented in RTT::base::BufferLockFree< T >, RTT::base::BufferLocked< T >, and RTT::base::BufferUnSync< T >.
Referenced by RTT::internal::ChannelBufferElement< T >::write(), and RTT::base::BufferInterface< T >::~BufferInterface().
|
pure virtual |
Write a sequence of values to the buffer.
items | the values to write |
Implemented in RTT::base::BufferLockFree< T >, RTT::base::BufferLocked< T >, and RTT::base::BufferUnSync< T >.
|
pure virtual |
Releases the pointer.
item | pointer aquired using PopWithoutRelease() |
Implemented in RTT::base::BufferLockFree< T >, RTT::base::BufferLocked< T >, and RTT::base::BufferUnSync< T >.
Referenced by RTT::internal::ChannelBufferElement< T >::clear(), RTT::internal::ChannelBufferElement< T >::read(), RTT::base::BufferInterface< T >::~BufferInterface(), and RTT::internal::ChannelBufferElement< T >::~ChannelBufferElement().
|
pure virtualinherited |
Returns the actual number of items that are stored in the buffer.
Implemented in RTT::base::BufferLocked< T >, RTT::base::BufferUnSync< T >, and RTT::base::BufferLockFree< T >.
Referenced by RTT::internal::ChannelBufferElement< T >::getBufferFillSize().