0.8.1 • Published 4 years ago

bit-buffer-ts v0.8.1

Weekly downloads
10
License
MIT
Repository
github
Last release
4 years ago

@ntrip/bit-buffer

Modification of the original bit-buffer by inolen, changing to TypeScript and modifying methods relating to buffer/string reading/writing.

BitBuffer provides two objects, BitView and BitStream. BitView is a wrapper for ArrayBuffers with support for bit-level reads and writes. BitStream is a wrapper for a BitView used to help maintain your current buffer position.

Class: BitView

Wrapper for ArrayBuffers with support for bit-level reads and writes.

Similar to JavaScript's DataView.

Constructors

constructor

+ new BitView(buffer: Uint8Array, byteOffset: number, byteLength: number): BitView

Parameters:

NameTypeDefault
bufferUint8Array-
byteOffsetnumber0
byteLengthnumberbuffer.length - byteOffset

Returns: BitView

Properties

Readonly bitLength: number

Length of this view (in bits) from the start of its buffer.


Readonly buffer: Uint8Array

Underlying buffer which this view accesses.


Readonly byteLength: number

Length of this view (in bytes) from the start of its buffer.

Methods

getBit(offset: number): 1 | 0

Returns the bit value at the specified bit offset.


getBits(offset: number, bits: number, signed: boolean): number

Returns a bits long value at the specified bit offset.


getBitArray(offset: number, bits: number): boolean[]

Returns a bits long array of bit values at the specified bit offset.


readBuffer(offset: number, byteLength: number): Uint8Array

Returns a buffer containing the bytes at the specified bit offset.


readString(offset: number, byteLength: number, decoder?: undefined | TextDecoder): string

Returns a string decoded from the bytes at the specified bit offset.


setBit(offset: number, value: 1 | 0): void

Writes the bit value at the specified bit offset.


setBits(offset: number, value: number, bits: number): void

Writes a bits long value at the specified bit offset.

remarks There is no difference between signed and unsigned values when storing.


setBitArray(offset: number, value: boolean[], bits: number): void

Writes a bits long array of bit values at the specified bit offset.


writeBuffer(offset: number, buffer: Uint8Array): number

Writes the contents of a buffer at the specified bit offset.

Returns: The number of bytes written.


writeString(offset: number, string: string, byteLength?: undefined | number, encoder?: undefined | TextEncoder): number

Writes an encoded form of a string to the bytes at the specified bit offset.

remarks If the encoded string length is less than byteLength, the remainder is filled with 0s.

remarks If the encoded string length is longer than byteLength, it is truncated.

Returns: The number of bytes written (may be different from the string length).


getBoolean, getInt8, getInt16, getInt32, getUint8, getUint16, getUint32, setBoolean, setInt8, setInt16, setInt32, setUint8, setUint16, setUint32

Helper methods, see getBits and setBits.

Class: BitStream

Wrapper for BitViews that maintains an index while reading/writing sequential data.

Constructors

constructor

+ new BitStream(source: BitView): BitStream

Parameters:

NameType
sourceBitView

Returns: BitStream

+ new BitStream(source: Buffer, byteOffset?: undefined | number, byteLength?: undefined | number): BitStream

Parameters:

NameType
sourceBuffer
byteOffset?undefined | number
byteLength?undefined | number

Returns: BitStream

Properties

bitIndex: number

Current position of this stream (in bits) from/to which data is read/written.


Readonly bitLength: number

Length of this stream (in bits) from the start of its buffer.


Readonly buffer: Uint8Array

Underlying buffer which this stream accesses.


Readonly byteLength: number

Length of this stream (in bytes) from the start of its buffer.


Readonly view: BitView

Underlying view which this stream accesses.

Accessors

bitsLeft

get bitsLeft(): number

Number of bits remaining in this stream's underlying buffer from the current position.

Returns: number


byteIndex

get byteIndex(): number

Current position of this stream (in bytes) from/to which data is read/written.

Returns: number

set byteIndex(val: number): void

Current position of this stream (in bytes) from/to which data is read/written.

Parameters:

NameType
valnumber

Returns: void


index

Alias for bitIndex

Parameters:

NameType
valnumber

Returns: void

Methods

readBit(): 1 | 0


readBits(bits: number, signed: boolean): number


readBitArray(bits: number): boolean[]


readBuffer(byteLength: number): Uint8Array


readString(byteLength: number, decoder?: undefined | TextDecoder): string


writeBit(value: 1 | 0): void


writeBits(value: number, bits: number): void


writeBitArray(value: boolean[], bits: number): void


writeBuffer(buffer: Uint8Array): number


writeString(string: string, byteLength?: undefined | number, encoder?: undefined | TextEncoder): number


readBoolean, readInt8, readInt16, readInt32, readUint8, readUint16, readUint32, writeBoolean, writeInt8, writeInt16, writeInt32, writeUint8, writeUint16, writeUint32

Helper methods, see readBits and writeBits.