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