/*************************************************************** * * * Taiko Sanro - Arduino * * Cache data structure * * * * Chris * * wisaly@gmail.com * * * ***************************************************************/ #ifndef CACHE_H #define CACHE_H template class Cache { public: Cache() { memset(data_, 0, sizeof(data_)); } inline void put(T value) { current_ = (current_ + 1) % L; data_[current_] = value; } inline T get(int offset = 0) const { return data_[(current_ + offset) % L]; } private: T data_[L]; int current_ = 0; }; #endif // CACHE_H