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
						
					
					
						
							829 B
						
					
					
				
			
		
		
	
	
							30 lines
						
					
					
						
							829 B
						
					
					
				"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;
 | 
						|
 |