dol: initial dol commit
[jump.git] / dol / src / dol / visitor / protothread / lib / WindowedFifo.h
1 #ifndef _WINDOWEDFIFO_H_\r
2 #define _WINDOWEDFIFO_H_\r
3 \r
4 class WindowedFifo {\r
5     public:\r
6         WindowedFifo(unsigned size);\r
7         virtual ~WindowedFifo();\r
8 \r
9         virtual unsigned reserve(void** destination, unsigned len);\r
10         virtual void release();\r
11 \r
12         virtual unsigned capture(void** destination, unsigned len);\r
13         virtual void consume();\r
14 \r
15         virtual unsigned used() const;\r
16         virtual unsigned unused() const;\r
17         virtual unsigned size() const;\r
18     protected:\r
19         char *_buffer;\r
20         unsigned _head;\r
21         unsigned _tail;\r
22         unsigned _headRoom;\r
23         unsigned _tailRoom;\r
24         unsigned _size;\r
25         unsigned _use; \r
26         unsigned _writeReserve;  
27         unsigned _readReserve; 
28         bool _isHeadReserved;\r
29         bool _isTailReserved;\r
30 };\r
31 \r
32 #endif\r