home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / lib / python2.4 / site-packages / BitTorrent / CurrentRateMeasure.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2006-08-31  |  1.5 KB  |  47 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. from time import time
  5.  
  6. class Measure:
  7.     
  8.     def __init__(self, max_rate_period, fudge = 1):
  9.         self.max_rate_period = max_rate_period
  10.         self.ratesince = time() - fudge
  11.         self.last = self.ratesince
  12.         self.rate = 0.0
  13.         self.total = 0x0L
  14.  
  15.     
  16.     def update_rate(self, amount):
  17.         self.total += amount
  18.         t = time()
  19.         self.rate = (self.rate * (self.last - self.ratesince) + amount) / (t - self.ratesince)
  20.         self.last = t
  21.         if self.ratesince < t - self.max_rate_period:
  22.             self.ratesince = t - self.max_rate_period
  23.         
  24.  
  25.     
  26.     def get_rate(self):
  27.         self.update_rate(0)
  28.         return self.rate
  29.  
  30.     
  31.     def get_rate_noupdate(self):
  32.         return self.rate
  33.  
  34.     
  35.     def time_until_rate(self, newrate):
  36.         if self.rate <= newrate:
  37.             return 0
  38.         
  39.         t = time() - self.ratesince
  40.         return self.rate * t / newrate - t
  41.  
  42.     
  43.     def get_total(self):
  44.         return self.total
  45.  
  46.  
  47.