1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#ifndef RING_BUFFER_H
#define RING_BUFFER_H
/*!
\file
\brief Oobt@
\author Satofumi KAMIMURA
$Id: ring_buffer.h 1557 2009-12-01 12:38:06Z satofumi $
*/
//! Oobt@̊Ǘ
typedef struct
{
char *buffer; //!< obt@ւ̃|C^
int buffer_size; //!< obt@TCY
int first; //!< obt@̐擪ʒu
int last; //!< obt@̍ŏIʒu
} ringBuffer_t;
/*!
\brief
\param[in] ring Oobt@̍\
\param[in] buffer 蓖Ăobt@
\param[in] shift_length obt@TCY 2 ̏搔
*/
extern void ring_initialize(ringBuffer_t *ring,
char *buffer, const int shift_length);
/*!
\brief Oobt@̃NA
\param[in] ring Oobt@̍\
*/
extern void ring_clear(ringBuffer_t *ring);
/*!
\brief i[f[^Ԃ
\param[in] ring Oobt@̍\
*/
extern int ring_size(const ringBuffer_t *ring);
/*!
\brief ő̊i[f[^Ԃ
\param[in] ring Oobt@̍\
*/
extern int ring_capacity(const ringBuffer_t *ring);
/*!
\brief f[^̊i[
\param[in] ring Oobt@̍\
\param[in] data f[^
\param[in] size f[^TCY
\return i[f[^
*/
extern int ring_write(ringBuffer_t *ring, const char *data, int size);
/*!
\brief f[^̎o
\param[in] ring Oobt@̍\
\param[out] buffer f[^
\param[in] size ő̃f[^TCY
\return of[^
*/
extern int ring_read(ringBuffer_t *ring, char *buffer, int size);
#endif /* ! RING_BUFFER_H */
|