// -*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*- /// @file AP_Buffer.h /// @brief fifo buffer template class #ifndef __AP_BUFFER_H__ #define __AP_BUFFER_H__ #include /// @class AP_Buffer template class AP_Buffer { public: // Constructor AP_Buffer(); // clear - removes all points from the curve void clear(); // add - adds an item to the buffer. returns TRUE if successfully added void add( T item ); // get - returns the next value in the buffer T get(); // peek - check what the next value in the buffer is but don't pull it off T peek(uint8_t position = 0) const; // num_values - returns number of values in the buffer uint8_t num_items() const { return _num_items; } private: uint8_t _num_items; // number of items in the buffer uint8_t _head; // first item in the buffer (will be returned with the next get call) T _buff[SIZE]; // x values of each point on the curve }; // Typedef for convenience - add more as needed typedef AP_Buffer AP_BufferFloat_Size5; typedef AP_Buffer AP_BufferFloat_Size15; #endif // __AP_BUFFER_H__