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;
 | |
| 
 |