RingBuffer - Perl extension for creating a ring buffer of any size with any object as the ring data.
use RingBuffer; my $buffer = ; my $ringsize = 256; my $overwrite = 0; my $printextendedinfo = 0; my $r = new RingBuffer( Buffer => $buffer, RingSize => $ringsize, Overwrite => $overwrite, PrintExtendedInfo => $printextendedinfo, ); # initialize the ring, in this case with an array $r->ring_init(); # will create 256 ring buffer of array objects # remove an object from the ring my $obj = $r->ring_remove(); # add an object to the front of the ring # this is usually used for putting items back on the ring $r->ring_add_to_front($obj); # peek at the next item on the ring my $obj = $r->ring_peek(); # clear out the ring, also zeros out the data $r->ring_clear();
This software create a ring buffer of <n> length. You can store any type of object inside the buffer that you create. Description of the functions are listed below:
Initialize the ring with your object passed to the the 'Buffer=><obj>' argument.
Clear the ring of all objects.
Add an object to the buffer of the ring.
Remove an object from the ring and return it.
Return the size of the ring, takes into account the wrapping around of the ring.
Add a piece of data to the front of the ring
Change a piece of data in the ring at the current head location.
Take a look at the item on the ring to be returned, but do not remove it from the ring.
Print the contents of the ring. Could be a huge printout if you make the ring size large. Also you can set the variable 'PrintExtendedInfo' and get the head and tail on a seperate line.
None by default.
None that I know of right now.
I also have a website where you can find the latest versions of this software:
Please e-mail me with problems, bug fixes, comments and complaints.
Travis Kent Beste, <email@example.com>
Copyright (C) 2008 by Travis Kent Beste
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.