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