Circular (gb.data)

A Circular buffer, or Circular for short, is a fixed-size buffer with one read and one write pointer. When data is read/written, the proper pointer is moved forward independently of the other one. When the end of the buffer is reached, the pointer wraps around to the beginning. Thus, old never-read values can be overwritten.

This datatype may be ideal for communications between entities where it does not really matter when old values get overwritten, but we still want a fixed-size buffer. For example, log messages are traditionally treated using this technique.

More information on circular buffers on Wikipedia

This class is creatable.

Properties
IsEmpty   property Read IsEmpty As Boolean
IsFull   property Read IsFull As Boolean
Overwrite   property Overwrite As Boolean
Reader   property Reader As Integer
Size   property Size As Integer
Writer   property Writer As Integer

Methods
Clear   Remove all the elements in the Circular by advancing the read pointer to the write pointer.
Peek   Function Peek ( ) As Variant
Read   Function Read ( ) As Variant
Reset   Sub Reset ( )
Resize   Sub Resize ( Size As Integer )
Write   Sub Write ( Value As Variant )