/*
* 数値用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__ */