| 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!"); |
| } |
| }); |