X-Git-Url: http://sraa.de/git/?a=blobdiff_plain;f=dol%2Fsrc%2Fdol%2Fvisitor%2FPipeAndFilter%2Flib%2FFifo.h;fp=dol%2Fsrc%2Fdol%2Fvisitor%2FPipeAndFilter%2Flib%2FFifo.h;h=e1adb033b1249ca09fa4ce289d21daad97e6c066;hb=8c411cf24ed0eb889191aaeafd8fa1e69081df42;hp=0000000000000000000000000000000000000000;hpb=dea7a4fb1ed110d3ce6e6d9255103d724bd66c0e;p=jump.git diff --git a/dol/src/dol/visitor/PipeAndFilter/lib/Fifo.h b/dol/src/dol/visitor/PipeAndFilter/lib/Fifo.h new file mode 100644 index 0000000..e1adb03 --- /dev/null +++ b/dol/src/dol/visitor/PipeAndFilter/lib/Fifo.h @@ -0,0 +1,31 @@ +#ifndef _FIFO_H_ +#define _FIFO_H_ + +#include +#include +#include "Mutex.h" +#include "Condition.h" + +class Fifo { + public: + Fifo(char* name, unsigned size); + virtual ~Fifo(); + + virtual unsigned read(void *destination, unsigned len); + virtual unsigned write(const void *source, unsigned len); + virtual unsigned used() const; + virtual unsigned unused() const; + virtual unsigned size() const; + virtual char* getName() const; + + protected: + char *_buffer; + unsigned _head; + unsigned _tail; + unsigned _size; + char *_name; + Mutex *_mutex; + Condition *_readCondition, *_writeCondition; +}; + +#endif