|
| FiFo (const unsigned int length, const T &value) |
| Initialise and fill the fifo. More...
|
|
| FiFo (const unsigned int length=0) |
| Initialises the fifo, but does not fill it. More...
|
|
void | fill (const T &value) |
| One-shot fill method. More...
|
|
unsigned int | get_idx () |
| Index of the oldest element in the fifo. More...
|
|
T & | operator[] (int idx) |
| Returns the indexed value offset from the oldest data. More...
|
|
const T & | operator[] (int idx) const |
| Const version of the [] accessor. More...
|
|
void | push_back (const T &datum) |
| Push back onto the fifo. More...
|
|
void | resize (unsigned int length) |
| Resize the fifo storage. More...
|
|
template<typename T>
class ecl::FiFo< T >
Really simple fifo implementation.
For control programs, fifo is typically used for data storage, moving average and some applications. It uses ecl::Array internally for storage (all exception handling is thus handled by ecl::Array).
Usage:
During the construction of fifo, typically length of buffer may be important.
FiFo<double> fifo(4);
fifo.push_back( data_incoming );
But initial value for whole buffer can be important to you.
Especially if you want to use fifo for moving average,
you should wait
for N (length of buffer) incoming of
data.
But if you use below code, you can use fifo immediately
@code
FiFo<double> fifo(4, initial_value);
fifo.push_back( next_data );
...
Data access
[0] always return oldest data set from the fifo and [N-1] returns always new data from the fifo once your buffer is full.
FiFo<double> fifo(4);
fifo.push_back(1.0);
fifo.push_back(2.0);
fifo.push_back(3.0);
fifo.push_back(4.0);
std::cout << fifo[0] << std::endl;
std::cout << fifo[3] << std::endl;
- See also
- ecl::Array.
Definition at line 88 of file fifo.hpp.