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
			| 
											2 years ago
										 | "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; | ||
|  | 
 |