RingBufferPut()

FUNKTION:
    protected void RingBufferPut(struct std_ringbuffer buf, mixed val);

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

ARGUMENTE:
    buf - Ringpuffer, in den <val> geschrieben werden soll
    val - neues Datum

BESCHREIBUNG:
    Diese Funktion schreibt <val> in den Ringpuffer <buf>. Hierbei wird ggf.
    das aelteste im Puffer existierende Datum ueberschrieben. <buf> muss eine
    von CreateRingBuffer() oder ResizeRingBuffer() zurueckgelieferter
    Ringpuffer sein.

BEISPIELE:
    // Ringpuffer anlegen:
    struct std_ringbuffer buffer = CreateRingBuffer(10, MODE_FIFO);
    // 15 Werte reinschreiben:
    foreach(int i: 15) RingBufferPut(buffer, i);

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

23.05.2008, Zesstra

