/* * Ring BufferというFIFOを表現するヘッダファイル * ring_buffer.cがメインソース * * @author fenrir (M.Naruoka) * @since 04/05/30 * @version 1.0 */ #ifndef __FIFO_CHAR_H__ #define __FIFO_CHAR_H__ #ifdef __cplusplus extern "C" { #endif #ifndef FIFO_CHAR_SIZE_T #define FIFO_CHAR_SIZE_T int #endif typedef FIFO_CHAR_SIZE_T fifo_char_size_t; typedef struct rbuffer_char_t{ char *buffer; fifo_char_size_t size; char *prius; char *follower; } fifo_char_t; /* リングバッファルール * follower(追っかけ)はprius(先行者)に追いつくことはできないし、追い抜くこともできない * prius(先行者)はfollower(追っかけ)に追いつくことはできるが、追い抜くことはできない */ fifo_char_t *fifo_char_init(fifo_char_t *buffer, char *c, fifo_char_size_t size); fifo_char_size_t fifo_char_write(fifo_char_t *buffer, char *data, fifo_char_size_t size); fifo_char_size_t fifo_char_read(fifo_char_t *buffer, char *c, fifo_char_size_t size); fifo_char_size_t fifo_char_size(fifo_char_t *buffer); #ifdef __cplusplus } #endif #endif /* __FIFO_CHAR_H__ */