+#ifndef _FIFO_H_\r
+#define _FIFO_H_\r
+\r
+#include <string.h>\r
+#include <stdio.h>\r
+#include "Mutex.h"\r
+#include "Condition.h"\r
+\r
+class Fifo {\r
+ public:\r
+ Fifo(char* name, unsigned size);\r
+ virtual ~Fifo();\r
+\r
+ virtual unsigned read(void *destination, unsigned len);\r
+ virtual unsigned write(const void *source, unsigned len);\r
+ virtual unsigned used() const;\r
+ virtual unsigned unused() const;\r
+ virtual unsigned size() const;\r
+ virtual char* getName() const;\r
+\r
+ protected:\r
+ char *_buffer;\r
+ unsigned _head;\r
+ unsigned _tail;\r
+ unsigned _size;\r
+ char *_name;\r
+ Mutex *_mutex;\r
+ Condition *_readCondition, *_writeCondition;\r
+};\r
+\r
+#endif\r