aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/node-gyp/node_modules/tar/lib/buffer-entry.js
diff options
context:
space:
mode:
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.js30
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)
+}