Circular (gb.data)

Ein zirkulärer Puffer, Circular oder Ringpuffer, ist ein Puffer konstanter Größe mit einem Lese- und einem Schreib-Zeiger. Wenn Daten gelesen/geschrieben werden wird der betreffende Zeiger vom anderen unabhängig vorwärts bewegt. Wenn ein Zeiger das Ende des Puffers erreicht, schlägt er wieder auf den Anfang um. Also können alte, nichtgelesene Daten überschrieben werden.

Dieser Datentyp ist ideal für die Kommunikation zwischen Teilsystemen, bei der der Verlust alter Daten keine Rolle spielt, man aber Wert auf die feste Größe des Puffers legt. Traditionell werden z.B. Lognachrichten mit dieser Technik gespeichert.

Mehr Informationen über Zirkuläre Puffer auf Wikipedia

Diese Klasse ist erstellbar.

Eigenschaften
IsEmpty  
IsFull   Gibt an, ob der Circular voll ist, d.i. der Schreib-Zeiger umrundet den Lese-Zeiger. Abhängig von der Overwrite-Einstellung kann ein Circular noch beschrieben werden, auch wenn er voll ist.
Overwrite   Zeigt an oder setzt das Verhalten, wenn Daten in einen vollen Circular geschrieben werden.
Reader   Zeigt an oder setzt den Index des Lese-Zeigers.
Size   Zeigt an oder setzt die Größe des Puffers.
Writer   Zeigt an oder setzt den Schreib-Zeiger.

Methoden
Clear   Sub Clear ( )
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 )