reader_buffer.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. module.exports = BufferReader;
  3. // extends Reader
  4. var Reader = require("./reader");
  5. (BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;
  6. var util = require("./util/minimal");
  7. /**
  8. * Constructs a new buffer reader instance.
  9. * @classdesc Wire format reader using node buffers.
  10. * @extends Reader
  11. * @constructor
  12. * @param {Buffer} buffer Buffer to read from
  13. */
  14. function BufferReader(buffer) {
  15. Reader.call(this, buffer);
  16. /**
  17. * Read buffer.
  18. * @name BufferReader#buf
  19. * @type {Buffer}
  20. */
  21. }
  22. /* istanbul ignore else */
  23. if (util.Buffer)
  24. BufferReader.prototype._slice = util.Buffer.prototype.slice;
  25. /**
  26. * @override
  27. */
  28. BufferReader.prototype.string = function read_string_buffer() {
  29. var len = this.uint32(); // modifies pos
  30. return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));
  31. };
  32. /**
  33. * Reads a sequence of bytes preceeded by its length as a varint.
  34. * @name BufferReader#bytes
  35. * @function
  36. * @returns {Buffer} Value read
  37. */