1 #ifndef RINGBUF_H_INC
\r
2 #define RINGBUF_H_INC
\r
5 template<class T, long bufSize>
\r
16 bool operator << (T &obj)
\r
20 while(write>=bufSize)write-=bufSize;
\r
23 --write; //make sure this happens next time
\r
24 while(write<0)write+=bufSize;
\r
29 bool operator >> (T &res)
\r
32 while(read>=bufSize)read-=bufSize;
\r
35 ++write; //make sure this happens next time we call and the buf is still empty
\r
36 while(write>=bufSize)write-=bufSize;
\r
42 unsigned long dataSize()
\r
44 unsigned long wc=write;
\r
45 while(wc<read)wc+=bufSize;
\r
48 void flood(const T &value)
\r
50 //loop through all indices, flooding them
\r
51 //this is basically a reset
\r
53 for(write=0;write<bufSize;write++)
\r