Sha256: c108f0b33a6b6e2bb2074203ff1616c200ea2a4fabcae52eb5a7793288a80578
Contents?: true
Size: 1.05 KB
Versions: 7
Compression:
Stored size: 1.05 KB
Contents
module Merb # Keeps track of the status of all currently processing uploads class UploadProgress include DRbUndumped if defined?(DRbUndumped) attr_accessor :debug def initialize @guard = Mutex.new @counters = {} end def check(upid) @counters[upid].last rescue nil end def last_checked(upid) @counters[upid].first rescue nil end def update_checked_time(upid) @guard.synchronize { @counters[upid][0] = Time.now } end def add(upid, size) @guard.synchronize do @counters[upid] = [Time.now, {:size => size, :received => 0}] puts "#{upid}: Added" if @debug end end def mark(upid, len) return unless status = check(upid) puts "#{upid}: Marking" if @debug @guard.synchronize { status[:received] = status[:size] - len } end def finish(upid) @guard.synchronize do puts "#{upid}: Finished" if @debug @counters.delete(upid) end end def list @counters.keys.sort end end end
Version data entries
7 entries across 7 versions & 1 rubygems