![]() ![]() ![]()
|
SophiaFramework UNIVERSE 5.1 |
SFXRingBuffer is the class which represents a ring buffer.
Conceptually, the ring buffer is a chunk of memory arranged in the circular manner.
The ring buffer has the read pointer and the write pointer which advance clockwisely. When data are written onto the ring buffer through the write pointer, the write pointer will advance. When data are read from the ring buffer through the read pointer, the read pointer will advance.
![]() |
Note |
|---|---|
| The read pointer cannot go beyond the write pointer. Conversely, the write pointer cannot go beyond the read pointer. | |
Example 14.10. Method to use the SFXRingBuffer class
Byte data1[] = {'1', '2', '3', '4', '5', '6', '7', '8'};
Byte data2[] = {'9', 'a', 'b', 'c', 'd', 'e'};
SFXRingBuffer ring;
SFXBuffer buffer;
// set size of ring buffer to 12 bytes
ring.Allocate(12);
// write 8-bytes data
ring.Write(data1, sizeof(data1));
// reserve buffer for reading
buffer.SetSize(4);
// read 4 bytes
ring.Read(&buffer); // buffer = "1234"
// write 6-bytes data
ring.Write(data2, sizeof(data2));
// reserve buffer for reading
buffer.SetSize(10);
// read 10 bytes
ring.Read(&buffer); // buffer = "56789abcde"
|
Copyright(c) 2002 - 2010 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|