1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
/////////////////////////////////////////////////////////////
// //
// Copyright (c) 2003-2011 by The University of Queensland //
// Earth Systems Science Computational Centre (ESSCC) //
// http://www.uq.edu.au/esscc //
// //
// Primary Business: Brisbane, Queensland, Australia //
// Licensed under the Open Software License version 3.0 //
// http://www.opensource.org/licenses/osl-3.0.php //
// //
/////////////////////////////////////////////////////////////
#ifndef __RINGBUFFER_H
#define __RINGBUFFER_H
// --- STL includes ---
#include <vector>
using std::vector;
/*!
class for a ringbuffer
*/
template <typename T>
class RingBuffer
{
private:
vector<T> m_buffer;
int m_idx;
int m_size;
public:
RingBuffer(int);
T& operator[](int);
T operator[] (int) const;
void insert(const T&);
inline int size() const {return m_size;};
};
#include "Foundation/RingBuffer.hpp"
#endif // __RINGBUFFER_H
|