#include <Array.au3>
#include <RingBuffer.au3>

Local $aBuffer
Local $aMyRingBuffer = _RingBuffer_Create(5)

ConsoleWrite("Buffer capacity " & _RingBuffer_GetCapacity($aMyRingBuffer) & " elements" & @CRLF)
ConsoleWrite(@CRLF)

;Add 5 items
For $i = 1 To 5
	_RingBuffer_Add($aMyRingBuffer, "Item Nr. " & $i)
	ConsoleWrite("Adding Item Nr. " & $i & ". Buffer contains " & _RingBuffer_GetCount($aMyRingBuffer) & " elements" & @CRLF)
Next

ConsoleWrite(@CRLF)

;Show what's inside the ring buffer
$aBuffer = _RingBuffer_GetAll($aMyRingBuffer)
_ArrayDisplay($aBuffer)

;Overflow the ring buffer
_RingBuffer_Add($aMyRingBuffer, "Item Nr. 6")
$aBuffer = _RingBuffer_GetAll($aMyRingBuffer)
_ArrayDisplay($aBuffer)

;Remove the oldest element (Item Nr. 2 because Item Nr. 1 was replaced with Item Nr. 6)
_RingBuffer_Remove($aMyRingBuffer)
$aBuffer = _RingBuffer_GetAll($aMyRingBuffer)
_ArrayDisplay($aBuffer)

;Remove the remaining elements
_RingBuffer_Clear($aMyRingBuffer)

$aBuffer = _RingBuffer_GetAll($aMyRingBuffer)
_ArrayDisplay($aBuffer)

;Trying to remove an item from an empty ring buffer
;Return = False because ring buffer was empty before
ConsoleWrite("Removing: " & _RingBuffer_Remove($aMyRingBuffer) & @CRLF)