30 lines
829 B
JavaScript
30 lines
829 B
JavaScript
|
"use strict";
|
||
|
|
||
|
var utils = require("../utils");
|
||
|
var GenericWorker = require("./GenericWorker");
|
||
|
|
||
|
/**
|
||
|
* A worker which calculate the total length of the data flowing through.
|
||
|
* @constructor
|
||
|
* @param {String} propName the name used to expose the length
|
||
|
*/
|
||
|
function DataLengthProbe(propName) {
|
||
|
GenericWorker.call(this, "DataLengthProbe for " + propName);
|
||
|
this.propName = propName;
|
||
|
this.withStreamInfo(propName, 0);
|
||
|
}
|
||
|
utils.inherits(DataLengthProbe, GenericWorker);
|
||
|
|
||
|
/**
|
||
|
* @see GenericWorker.processChunk
|
||
|
*/
|
||
|
DataLengthProbe.prototype.processChunk = function (chunk) {
|
||
|
if(chunk) {
|
||
|
var length = this.streamInfo[this.propName] || 0;
|
||
|
this.streamInfo[this.propName] = length + chunk.data.length;
|
||
|
}
|
||
|
GenericWorker.prototype.processChunk.call(this, chunk);
|
||
|
};
|
||
|
module.exports = DataLengthProbe;
|
||
|
|