Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / protobufjs / src / reader_buffer.js
1 "use strict";
2 module.exports = BufferReader;
3
4 // extends Reader
5 var Reader = require("./reader");
6 (BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;
7
8 var util = require("./util/minimal");
9
10 /**
11  * Constructs a new buffer reader instance.
12  * @classdesc Wire format reader using node buffers.
13  * @extends Reader
14  * @constructor
15  * @param {Buffer} buffer Buffer to read from
16  */
17 function BufferReader(buffer) {
18     Reader.call(this, buffer);
19
20     /**
21      * Read buffer.
22      * @name BufferReader#buf
23      * @type {Buffer}
24      */
25 }
26
27 BufferReader._configure = function () {
28     /* istanbul ignore else */
29     if (util.Buffer)
30         BufferReader.prototype._slice = util.Buffer.prototype.slice;
31 };
32
33
34 /**
35  * @override
36  */
37 BufferReader.prototype.string = function read_string_buffer() {
38     var len = this.uint32(); // modifies pos
39     return this.buf.utf8Slice
40         ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))
41         : this.buf.toString("utf-8", this.pos, this.pos = Math.min(this.pos + len, this.len));
42 };
43
44 /**
45  * Reads a sequence of bytes preceeded by its length as a varint.
46  * @name BufferReader#bytes
47  * @function
48  * @returns {Buffer} Value read
49  */
50
51 BufferReader._configure();