| module.exports = Stream; |
| |
| var Parser = require("./WritableStream.js"); |
| |
| function Stream(options){ |
| Parser.call(this, new Cbs(this), options); |
| } |
| |
| require("inherits")(Stream, Parser); |
| |
| Stream.prototype.readable = true; |
| |
| function Cbs(scope){ |
| this.scope = scope; |
| } |
| |
| var EVENTS = require("../").EVENTS; |
| |
| Object.keys(EVENTS).forEach(function(name){ |
| if(EVENTS[name] === 0){ |
| Cbs.prototype["on" + name] = function(){ |
| this.scope.emit(name); |
| }; |
| } else if(EVENTS[name] === 1){ |
| Cbs.prototype["on" + name] = function(a){ |
| this.scope.emit(name, a); |
| }; |
| } else if(EVENTS[name] === 2){ |
| Cbs.prototype["on" + name] = function(a, b){ |
| this.scope.emit(name, a, b); |
| }; |
| } else { |
| throw Error("wrong number of arguments!"); |
| } |
| }); |