dyn-ring-buffer
v1.0.0
Published
A dynamic size ring buffer for Typescript/Javascript.
Downloads
1
Readme
A TyepScript/Javascript Dynamic Ring (Circular) Buffer.
Install
npm install dyn-ring-buffer
Usage
Create a new buffer
import { RingBuffer } from 'dyn-ring-buffer';
// a buffer with the size of 10
const buffer = RingBuffer.create<String>(10);
Write and Read
// write two items into the buffer
buffer.write('Hello');
buffer.write('World');
// read from the buffer
buffer.read(); // Hello
Shrink and Grow
const buffer = RingBuffer.create(10);
// grow the buffer with 2
buffer.grow(2);
buffer.size(); // 12
// shrink the buffer by 5
buffer.shrink(5);
buffer.size(); // 7
API
RingBuffer.create()
Create a buffer with the given size. Minimum size is 2, throws error otherwise.
// JS
const buffer = RingBuffer.create(10);
// TS with generics
const buffer RingBuffer.create<string>(10);
buffer.read()
Reads the next available item in the buffer. Throws error if buffer is empty.
buffer.read();
buffer.write()
Write data to the buffer. In typescript use the specified type durring creation. Throws error if buffer is full.
buffer.write('Hello World');
buffer.grow()
Grows the buffer with a given amount. Throws error when trying to grow the buffer with less than 1.
buffer.grow(2); // buffer size + 2
buffer.shrink()
Shrinks the buffer down with the given amount. Throws error when trying to shrink the buffer to less than 2.
buffer.shrink(2) // buffer size - 2
buffer.size()
Returns the size of the buffer.
buffer.size();
buffer.free()
Returns the amount of free space in the buffer.
buffer.free();
buffer.readIndex()
The position of the read token. Starting index is 0.
buffer.readIndex()
buffer.writeIndex()
The position of the write token.Starting index is 0.
buffer.writeIndex()
buffer.flush()
Flushes all the data (resets read and write token) from the buffer. Retains the size if that was changed.
buffer.flush();
buffer.reset()
Resets the buffer to its original size and the read write tokens.
buffer.reset();