Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • 0fb1de11afae4abc279cc6c935959643414bb3b2
  • main default protected
  • revert-a98119d8
3 results

tracker-stream.js

Blame
  • tracker-stream.js 963 B
    'use strict'
    var util = require('util')
    var stream = require('readable-stream')
    var delegate = require('delegates')
    var Tracker = require('./tracker.js')
    
    var TrackerStream = module.exports = function (name, size, options) {
      stream.Transform.call(this, options)
      this.tracker = new Tracker(name, size)
      this.name = name
      this.id = this.tracker.id
      this.tracker.on('change', delegateChange(this))
    }
    util.inherits(TrackerStream, stream.Transform)
    
    function delegateChange (trackerStream) {
      return function (name, completion, tracker) {
        trackerStream.emit('change', name, completion, trackerStream)
      }
    }
    
    TrackerStream.prototype._transform = function (data, encoding, cb) {
      this.tracker.completeWork(data.length ? data.length : 1)
      this.push(data)
      cb()
    }
    
    TrackerStream.prototype._flush = function (cb) {
      this.tracker.finish()
      cb()
    }
    
    delegate(TrackerStream.prototype, 'tracker')
      .method('completed')
      .method('addWork')
      .method('finish')