NodeJS circular buffer based on native NodeJS Buffer
npm install cyclic-buffernpm install cyclic-buffer --save
var CyclicBuffer = require('cyclic-buffer').default;var buffer = new CyclicBuffer(5);
buffer.put(Buffer.from([10,11,12]));
console.log('There is ', buffer.size(), 'elements in the buffer');
console.log('buffer[0]:', buffer[0]); // 10
console.log('buffer[2]:', buffer[2]); // 12
buffer.put(Buffer.from([13,14,15,16]));
console.log('There is ', buffer.size(), 'elements in the buffer');
console.log('buffer[0]:', buffer[0]); // 12
console.log('buffer[4]:',buffer[4]); // 16
console.log('buffer[5]:',buffer[5]); // 12
console.log('First three elements of the buffer:', buffer.get(3));
console.log('There is ', buffer.size(), 'elements in the buffer');
console.log('buffer[0]:', buffer[0]); // 15
[1,2,3,4,5,6].forEach(element => buffer.push(element));
console.log('There is ', buffer.size(), 'elements in the buffer');
console.log('buffer[0]:', buffer[0]); // 2
console.log('buffer[4]:',buffer[4]); // 6
while(buffer.size() > 0) {
console.log(buffer.shift());
}
console.log('There is ', buffer.size(), 'elements in the buffer');
`
Documentation
$3
Constructs a ring buffer.
#### Arguments
-
size (Number): The initial size of the buffer in bytes. Defaults to 1024.-----
$3
#### Returns
(Number) Returns the maximum storage capacity of the buffer.
-----
$3
#### Returns
(Number) Returns the number of elements in the buffer.
-----
$3
#### Arguments
-
element (Number): Add a single element at the end of the buffer.#### Returns
(Boolean) true if the element is correctly inserted.
-----
$3
Remove the first element of the buffer
#### Returns
(Number) Returns the first element of the buffer.
-----
$3
#### Arguments
-
enumerable: Each element of this enumerable variable is inserted in the buffer.#### Returns
(Boolean) Returns true if the elements are correctly inserted.
-----
$3
Get a new buffer containing the
${size} first elements of the buffer. These elements are removed from the original cyclic buffer.#### Arguments
-
size (Number): The number of elements to retrieve.#### Returns
(Buffer) Returns a new buffer containing the
${size} first elements of the buffer.-----
$3
Empty the buffer.
-----
$3
#### Returns
(Buffer) Returns a reference to the raw Buffer using by the CyclicBuffer instance.
Warning : If you modify the raw buffer, this will modify your cyclic buffer.
-----
$3
#### Arguments
-
index (Number): The index of the element to consult.#### Returns
(Number) Returns the element at the
index` position in the buffer without removing it drom the buffer.