1.0.3 • Published 7 years ago

cyclic-buffer v1.0.3

Weekly downloads
2
License
ISC
Repository
github
Last release
7 years ago

cyclic-buffer

NodeJS cyclic (circular/ring) buffer based on native NodeJS Buffer.

Installation

npm install cyclic-buffer --save

Example

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

new CyclicBuffer(size)

Constructs a ring buffer.

Arguments

  • size (Number): The initial size of the buffer in bytes. Defaults to 1024.

CyclicBuffer#capacity()

Returns

(Number) Returns the maximum storage capacity of the buffer.


CyclicBuffer#size()

Returns

(Number) Returns the number of elements in the buffer.


CyclicBuffer#push(element)

Arguments

  • element (Number): Add a single element at the end of the buffer.

Returns

(Boolean) true if the element is correctly inserted.


CyclicBuffer#shift()

Remove the first element of the buffer

Returns

(Number) Returns the first element of the buffer.


CyclicBuffer#put(enumerable)

Arguments

  • enumerable: Each element of this enumerable variable is inserted in the buffer.

Returns

(Boolean) Returns true if the elements are correctly inserted.


CyclicBuffer#get(size)

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.


CyclicBuffer#reset()

Empty the buffer.


CyclicBuffer#getRawBuffer()

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.


CyclicBuffer#accessorindex

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.

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago