/* * 数値用Ring Buffer(FIFO)のヘッダファイル * fifo_num.cがメインソース * * @author fenrir (M.Naruoka) * @since 04/05/30 * @version 1.0 * @see fifo_num.c * @see common.h */ #ifndef __FIFO_NUM_H__ #define __FIFO_NUM_H__ #ifdef __cplusplus extern "C" { #endif #ifndef FIFO_NUM_SIZE_T #define FIFO_NUM_SIZE_T int #endif typedef FIFO_NUM_SIZE_T fifo_num_size_t; #ifndef FIFO_NUM_T #define FIFO_NUM_T int #endif typedef FIFO_NUM_T num_t; typedef struct{ num_t *buffer; fifo_num_size_t size; num_t *prius; num_t *follower; } fifo_num_t; /* リングバッファルール * follower(追っかけ)はprius(先行者)に追いつくことはできないし、追い抜くこともできない * prius(先行者)はfollower(追っかけ)に追いつくことはできるが、追い抜くことはできない */ fifo_num_t *fifo_num_init(fifo_num_t *buffer, num_t *array, fifo_num_size_t size); num_t *fifo_num_write(fifo_num_t *buffer, num_t data); num_t *fifo_num_read(fifo_num_t *buffer, num_t *data); fifo_num_size_t fifo_num_size(fifo_num_t *buffer); #ifdef __cplusplus }; #endif #endif /* __FIFO_NUM_H__ */