123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 'use strict';
-
- var Readable = require('readable-stream').Readable;
-
- var utils = require('../utils');
- utils.inherits(NodejsStreamOutputAdapter, Readable);
-
- /**
- * A nodejs stream using a worker as source.
- * @see the SourceWrapper in http://nodejs.org/api/stream.html
- * @constructor
- * @param {StreamHelper} helper the helper wrapping the worker
- * @param {Object} options the nodejs stream options
- * @param {Function} updateCb the update callback.
- */
- function NodejsStreamOutputAdapter(helper, options, updateCb) {
- Readable.call(this, options);
- this._helper = helper;
-
- var self = this;
- helper.on("data", function (data, meta) {
- if (!self.push(data)) {
- self._helper.pause();
- }
- if(updateCb) {
- updateCb(meta);
- }
- })
- .on("error", function(e) {
- self.emit('error', e);
- })
- .on("end", function () {
- self.push(null);
- });
- }
-
-
- NodejsStreamOutputAdapter.prototype._read = function() {
- this._helper.resume();
- };
-
- module.exports = NodejsStreamOutputAdapter;
|