/*
* 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__ */