dol: initial dol commit
[jump.git] / dol / src / dol / visitor / PipeAndFilter / lib / Fifo.h
1 #ifndef _FIFO_H_\r
2 #define _FIFO_H_\r
3 \r
4 #include <string.h>\r
5 #include <stdio.h>\r
6 #include "Mutex.h"\r
7 #include "Condition.h"\r
8 \r
9 class Fifo {\r
10     public:\r
11         Fifo(char* name, unsigned size);\r
12         virtual ~Fifo();\r
13 \r
14         virtual unsigned read(void *destination, unsigned len);\r
15         virtual unsigned write(const void *source, unsigned len);\r
16         virtual unsigned used() const;\r
17         virtual unsigned unused() const;\r
18         virtual unsigned size() const;\r
19         virtual char* getName() const;\r
20 \r
21     protected:\r
22         char *_buffer;\r
23         unsigned _head;\r
24         unsigned _tail;\r
25         unsigned _size;\r
26         char *_name;\r
27         Mutex *_mutex;\r
28         Condition *_readCondition, *_writeCondition;\r
29 };\r
30 \r
31 #endif\r