#ifndef FIFOBuffChar_h #define FIFOBuffChar_h #include // interface for a buffer with chars's // one element in the buffer struct FIFOBuffChar_element_s { char value; void* nextEl; }; // defines all vars for the buffer to operate typedef struct FIFOBuffChar_s { struct FIFOBuffChar_element_s* FirstEl_p; struct FIFOBuffChar_element_s* LastEl_p; unsigned char size; bool full; } FIFOBuffChar_t; // create a fifo buffer and initilizes it with zeros extern FIFOBuffChar_t* FIFOBuffChar_create(); // destroy a fifo buffer (free up its space) // returns true on success or false otherways extern bool FIFOBuffChar_delete(FIFOBuffChar_t* fifo); // put value i in buffer if there is still memory avaliable // returns true on success or false otherways extern bool FIFOBuffChar_put(FIFOBuffChar_t *fifo, char i); // get value from buffer and writes it to *p if buffer not empty // returns true on success or false otherways extern bool FIFOBuffChar_get(FIFOBuffChar_t *fifo, char *p); // returns false if last put fails to gain memory and no get is called afterwards or true otherwise extern bool FIFOBuffChar_is_full(FIFOBuffChar_t *fifo); // returns true when buffer is empty or false otherways extern bool FIFOBuffChar_is_empty(FIFOBuffChar_t *fifo); extern unsigned int FIFOBuffChar_getSize(FIFOBuffChar_t *fifo); #endif