CreateRingBuffer()

FUNKTION:
    protected struct std_ringbuffer CreateRingBuffer(int size, int newmode);

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

ARGUMENTE:
    size    - Groesse des neuen Ringpuffers (int)
    newmode - Ausgabemodus beim Abrufen des Puffers (int):
              MODE_FIFO: First-in-First-Out
              MODE_LIFO: Last-in-First-Out

BESCHREIBUNG:
    Diese Funktion erstellt einen neuen, leeren Ringpuffer der Groesse <size>
    und liefert ihn zurueck. Die Daten des Puffers werden spaeter gemaess
    <newmode> so gespeichert, dass bei der Ausgabe des Puffers mittels
    RingBufferGet() die entweder die neuesten Daten zuerst (MODE_LIFO) oder
    die aeltesten Daten zuerst (MODE_FIFO) geliefert werden.

RUeCKGABEWERT:
    Der neue Ringpuffer. Dieser wird in einer Struct std_ringbuffer
    gespeichert. Er ist in einer Variable 'mixed' oder in einer mittels
    'struct std_ringbuffer' angelegten Variable speicherbar.

BEMERKUNGEN:
    Der gelieferte Ringpuffer sollte nicht per Hand verarbeitet oder
    genaendert werden, sondern nur ueber die Verwaltungsfunktionen aus
    /std/util/ringbuffer.c.

BEISPIELE:
    // Variable anlegen:
    struct std_ringbuffer buffer;
    // _oder_: mixed buffer;
    // neuen Puffer mit max. 50 Elementen anlegen, der bei der Abfrage die
    // aeltesten Daten zuerst zurueckliefert:
    buffer = CreateRingBuffer(50, MODE_FIFO);

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

23.05.2008, Zesstra

