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})