RingBufferGet()

FUNKTION:
    protected mixed RingBufferGet(struct std_ringbuffer buf);

DEFINIERT IN:
    /std/util/ringbuffer.c
    /sys/util/ringbuffer.h

ARGUMENTE:
    buf - Ringpuffer, welcher ausgeben werden soll

BESCHREIBUNG:
    Diese Funktion liefert die Daten des Ringpuffers in Form eines Arrays
    zurueck, welches dann weiterverarbeitet werden kann.
    Die Reihenfolge der Daten ist entsprechend des beim Anlegen des
    Ringpuffers angebenen Modes:
    MODE_FIFO: aelteste Daten zuerst
    MODE_LIFO: neueste Daten zuerst

BEMERKUNGEN:
    Aenderungen am Array beeinflussen die Daten des Ringpuffers nicht. Aber:
    Hierbei werden die Daten nicht tief kopiert. D.h. enthaelt der Ringpuffer
    Referenzen auf weitere Daten, zeigen der Ringpuffer und das hier
    gelieferte Array auf die gleichen Daten.

BEISPIELE:
    // Ringpuffer anlegen:
    struct std_ringbuffer buffer = CreateRingBuffer(10, MODE_FIFO);
    // 15 Werte reinschreiben:
    foreach(int i: 15) RingBufferPut(buffer, i);
    // Werte abrufen:
    mixed array=RingBufferGet(buffer);
    // array enthaelt nun:
    // ({5,6,7,8,9,10,11,12,13,14}) 

SIEHE AUCH:
    CreateRingBuffer(), RingBufferPut(), ResizeRingBuffer()

23.05.2008, Zesstra

