ClearRingBuffer()
=================

FUNKTION
--------
::

    protected struct std_ringbuffer ClearRingBuffer(struct std_ringbuffer b);

DEFINIERT IN
------------
::

    /std/util/ringbuffer.c
    /sys/util/ringbuffer.h

ARGUMENTE
---------
::

    b - der zu loeschende Ringpuffer

BESCHREIBUNG
------------
::

    Diese Funktion loescht alle Daten aus dem Puffer <b> und re-initialisiert
    ihn.

    

RUeCKGABEWERT
-------------
::

    Der geloeschte Puffer <b> wird wieder zurueckgegeben.

BEISPIELE
---------
::

    // Ringpuffer anlegen:
    struct std_ringbuffer buffer=CreateRingBuffer(10, MODE_FIFO);
    // mit irgendwelchen Daten fuellen...
    // ...
    // Puffer loeschen
    buffer = ClearRingBuffer(buffer);
    // oder:
    ClearRingBuffer(buffer);

SIEHE AUCH
----------
::

    CreateRingBuffer(), RingBufferGet(), ResizeRingBuffer()

23.05.2008, Zesstra

