diff options
Diffstat (limited to 'deps/node/deps/npm/node_modules/node-gyp/node_modules/tar/lib/buffer-entry.js')
-rw-r--r-- | deps/node/deps/npm/node_modules/node-gyp/node_modules/tar/lib/buffer-entry.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/deps/node/deps/npm/node_modules/node-gyp/node_modules/tar/lib/buffer-entry.js b/deps/node/deps/npm/node_modules/node-gyp/node_modules/tar/lib/buffer-entry.js new file mode 100644 index 00000000..6c1da237 --- /dev/null +++ b/deps/node/deps/npm/node_modules/node-gyp/node_modules/tar/lib/buffer-entry.js @@ -0,0 +1,30 @@ +// just like the Entry class, but it buffers the contents +// +// XXX It would be good to set a maximum BufferEntry filesize, +// since it eats up memory. In normal operation, +// these are only for long filenames or link names, which are +// rarely very big. + +module.exports = BufferEntry + +var inherits = require("inherits") + , Entry = require("./entry.js") + +function BufferEntry () { + Entry.apply(this, arguments) + this._buffer = new Buffer(this.props.size) + this._offset = 0 + this.body = "" + this.on("end", function () { + this.body = this._buffer.toString().slice(0, -1) + }) +} + +inherits(BufferEntry, Entry) + +// collect the bytes as they come in. +BufferEntry.prototype.write = function (c) { + c.copy(this._buffer, this._offset) + this._offset += c.length + Entry.prototype.write.call(this, c) +} |