~vibhavp/ubuntu/saucy/urg/merge-from-debian

« back to all changes in this revision

Viewing changes to include/c/ring_buffer.h

  • Committer: Bazaar Package Importer
  • Author(s): Albert Huang
  • Date: 2010-03-30 01:43:55 UTC
  • Revision ID: james.westby@ubuntu.com-20100330014355-hz6mntlogs1uep7u
Tags: upstream-0.8.11
Import upstream version 0.8.11

Show diffs side-by-side

added added

removed removed

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