mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2025-01-03 20:41:22 +00:00
45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
"use strict";
|
|
module.exports = BufferReader;
|
|
|
|
// extends Reader
|
|
var Reader = require("./reader");
|
|
(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;
|
|
|
|
var util = require("./util/minimal");
|
|
|
|
/**
|
|
* Constructs a new buffer reader instance.
|
|
* @classdesc Wire format reader using node buffers.
|
|
* @extends Reader
|
|
* @constructor
|
|
* @param {Buffer} buffer Buffer to read from
|
|
*/
|
|
function BufferReader(buffer) {
|
|
Reader.call(this, buffer);
|
|
|
|
/**
|
|
* Read buffer.
|
|
* @name BufferReader#buf
|
|
* @type {Buffer}
|
|
*/
|
|
}
|
|
|
|
/* istanbul ignore else */
|
|
if (util.Buffer)
|
|
BufferReader.prototype._slice = util.Buffer.prototype.slice;
|
|
|
|
/**
|
|
* @override
|
|
*/
|
|
BufferReader.prototype.string = function read_string_buffer() {
|
|
var len = this.uint32(); // modifies pos
|
|
return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));
|
|
};
|
|
|
|
/**
|
|
* Reads a sequence of bytes preceeded by its length as a varint.
|
|
* @name BufferReader#bytes
|
|
* @function
|
|
* @returns {Buffer} Value read
|
|
*/
|