
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
