You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
804 B
30 lines
804 B
// 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) |
|
}
|
|
|