34
34
static CallID default_id = "audiolayer_id";
40
* @param size Size of the buffer to create
42
RingBuffer(int size, CallID call_id);
49
CallID getBufferId(){ return buffer_id; }
52
* Reset the counters to 0
54
void flush (CallID call_id = default_id);
58
int getReadPointer(CallID call_id = default_id);
60
ReadPointer* getReadPointerList() { return &_readpointer; }
62
int getSmallestReadPointer();
64
void storeReadPointer(int pointer_value, CallID call_id = default_id);
66
void createReadPointer(CallID call_id = default_id);
68
void removeReadPointer(CallID call_id = default_id);
70
bool hasThisReadPointer(CallID call_id);
72
int getNbReadPointer();
75
* To get how much space is available in the buffer to write in
76
* @return int The available size
78
int AvailForPut (void);
81
* Write data in the ring buffer
82
* @param buffer Data to copied
83
* @param toCopy Number of bytes to copy
84
* @param volume The volume
85
* @return int Number of bytes copied
87
int Put (void* buffer, int toCopy, unsigned short volume = 100);
90
* To get how much space is available in the buffer to read in
91
* @return int The available size
93
int AvailForGet (CallID call_id = default_id);
96
* Get data in the ring buffer
97
* @param buffer Data to copied
98
* @param toCopy Number of bytes to copy
99
* @param volume The volume
100
* @return int Number of bytes copied
102
int Get (void* buffer, int toCopy, unsigned short volume = 100, CallID call_id = default_id);
105
* Discard data from the buffer
106
* @param toDiscard Number of bytes to discard
107
* @return int Number of bytes discarded
109
int Discard(int toDiscard, CallID call_id = default_id);
112
* Total length of the ring buffer
117
int getLen(CallID call_id = default_id);
120
* Debug function print mEnd, mStart, mBufferSize
126
RingBuffer(const RingBuffer& rh);
128
// Assignment operator
129
RingBuffer& operator=(const RingBuffer& rh);
131
/** Pointer on the first data */
133
/** Pointer on the last data */
140
ReadPointer _readpointer;
146
friend class MainBufferTest;
148
std::fstream *buffer_input_rec;
149
std::fstream *buffer_output_rec;
41
* @param size Size of the buffer to create
43
RingBuffer (int size, CallID call_id = default_id);
50
CallID getBufferId() {
55
* Reset the counters to 0 for this read pointer
57
void flush (CallID call_id = default_id);
62
* Get read pointer coresponding to this call
64
int getReadPointer (CallID call_id = default_id);
67
* Get the whole readpointer list for this ringbuffer
69
ReadPointer* getReadPointerList() {
74
* Return the smalest readpointer. Usefull to evaluate if ringbuffer is full
76
int getSmallestReadPointer();
79
* Move readpointer forward by pointer_value
81
void storeReadPointer (int pointer_value, CallID call_id = default_id);
84
* Add a new readpointer for this ringbuffer
86
void createReadPointer (CallID call_id = default_id);
89
* Remove a readpointer for this ringbuffer
91
void removeReadPointer (CallID call_id = default_id);
94
* Test if readpointer coresponding to this call is still active
96
bool hasThisReadPointer (CallID call_id);
98
int getNbReadPointer();
101
* To get how much space is available in the buffer to write in
102
* @return int The available size
104
int AvailForPut (void);
107
* Write data in the ring buffer
108
* @param buffer Data to copied
109
* @param toCopy Number of bytes to copy
110
* @param volume The volume
111
* @return int Number of bytes copied
113
int Put (void* buffer, int toCopy, unsigned short volume = 100);
116
* To get how much space is available in the buffer to read in
117
* @return int The available size
119
int AvailForGet (CallID call_id = default_id);
122
* Get data in the ring buffer
123
* @param buffer Data to copied
124
* @param toCopy Number of bytes to copy
125
* @param volume The volume
126
* @return int Number of bytes copied
128
int Get (void* buffer, int toCopy, unsigned short volume = 100, CallID call_id = default_id);
131
* Discard data from the buffer
132
* @param toDiscard Number of bytes to discard
133
* @return int Number of bytes discarded
135
int Discard (int toDiscard, CallID call_id = default_id);
138
* Total length of the ring buffer
143
int getLen (CallID call_id = default_id);
146
* Debug function print mEnd, mStart, mBufferSize
152
RingBuffer (const RingBuffer& rh);
154
// Assignment operator
155
RingBuffer& operator= (const RingBuffer& rh);
157
/** Pointer on the first data */
159
/** Pointer on the last data */
166
ReadPointer _readpointer;
172
friend class MainBufferTest;
174
std::fstream *buffer_input_rec;
175
std::fstream *buffer_output_rec;