dol: initial dol commit
[jump.git] / dol / src / dol / visitor / PipeAndFilter / lib / Fifo.h
diff --git a/dol/src/dol/visitor/PipeAndFilter/lib/Fifo.h b/dol/src/dol/visitor/PipeAndFilter/lib/Fifo.h
new file mode 100644 (file)
index 0000000..e1adb03
--- /dev/null
@@ -0,0 +1,31 @@
+#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