blob: e00d5ad3d166e77f65f659b65358ef6c13f0e1ff [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001ResizeRingBuffer()
2==================
3
4FUNKTION
5--------
6::
7
8 protected struct std_ringbuffer buf RingBufferPut(
9 struct std_ringbuffer buf,
10 int size);
11
12DEFINIERT IN
13------------
14::
15
16 /std/util/ringbuffer.c
17 /sys/util/ringbuffer.h
18
19
20
21ARGUMENTE
22---------
23::
24
25 buf - Ringpuffer, dessen Groesse geaendert werden soll
26 size - neue Groesse (int)
27
28BESCHREIBUNG
29------------
30::
31
32 Diese Funktion erstellt einen neuen Ringpuffer der Groesse <size>, welcher
33 den gleichen Modus hat wie <buf> und die gleichen Daten enthaelt.
34 Ist der neue Puffer kleiner als <buf>, so kommt es hierbei zu
35 Datenverlust.
36 <buf> wird nicht veraendert. Ist die Groesse von <buf> gleich der
37 neuen gewuenschten Groesse, wird letztendlich der Ringpuffer kopiert.
38 Je nach Groesse von <buf> und Wert von <size> kann dies eine teure
39 Angelegenheit sein.
40
41RUeCKGABEWERT
42-------------
43::
44
45 Der neue Ringpuffer mit Groesse <size>.
46
47BEISPIELE
48---------
49::
50
51 // Ringpuffer anlegen:
52 struct std_ringbuffer buffer = CreateRingBuffer(5, MODE_FIFO);
53 // 5 Werte reinschreiben:
54 foreach(int i: 5) RingBufferPut(buffer, i);
55 // Groesse aendern
56 buffer = ResizeRingBuffer(buffer, 10);
57 // Daten als Array ermitteln:
58 mixed array = RingBufferGet(buffer);
59 // array enthaelt: ({0,0,0,0,0,0,1,2,3,4})
60
61SIEHE AUCH
62----------
63::
64
65 RingBufferGet(), RingBufferPut(), CreateRingBuffer()
66
6723.05.2008, Zesstra
68