blob: 17c33327fc98bf5551043140609e2e876c3ad1ea [file] [log] [blame]
ResizeRingBuffer()
******************
FUNKTION
========
protected struct std_ringbuffer buf RingBufferPut(
struct std_ringbuffer buf,
int size);
DEFINIERT IN
============
/std/util/ringbuffer.c
/sys/util/ringbuffer.h
ARGUMENTE
=========
buf - Ringpuffer, dessen Groesse geaendert werden soll
size - neue Groesse (int)
BESCHREIBUNG
============
Diese Funktion erstellt einen neuen Ringpuffer der Groesse <size>, welcher
den gleichen Modus hat wie <buf> und die gleichen Daten enthaelt.
Ist der neue Puffer kleiner als <buf>, so kommt es hierbei zu
Datenverlust.
<buf> wird nicht veraendert. Ist die Groesse von <buf> gleich der
neuen gewuenschten Groesse, wird letztendlich der Ringpuffer kopiert.
Je nach Groesse von <buf> und Wert von <size> kann dies eine teure
Angelegenheit sein.
RUeCKGABEWERT
=============
Der neue Ringpuffer mit Groesse <size>.
BEISPIELE
=========
// Ringpuffer anlegen:
struct std_ringbuffer buffer = CreateRingBuffer(5, MODE_FIFO);
// 5 Werte reinschreiben:
foreach(int i: 5) RingBufferPut(buffer, i);
// Groesse aendern
buffer = ResizeRingBuffer(buffer, 10);
// Daten als Array ermitteln:
mixed array = RingBufferGet(buffer);
// array enthaelt: ({0,0,0,0,0,0,1,2,3,4})
SIEHE AUCH
==========
RingBufferGet(), RingBufferPut(), CreateRingBuffer()
23.05.2008, Zesstra