summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/statistics.py
diff options
context:
space:
mode:
authorben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-06-25 18:04:08 +0000
committerben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-06-25 18:04:08 +0000
commitaa36fa26a216b2faf89b0bbd4d90fb16fd082f38 (patch)
tree4368b953be31798122ce1583cdcf5712c7cb073b /rdiff-backup/rdiff_backup/statistics.py
parenta8e880f1ad9cf62dc8b02fa60543b8925c10a846 (diff)
downloadrdiff-backup-aa36fa26a216b2faf89b0bbd4d90fb16fd082f38.tar.gz
More optimization: rewrote selection iteration to not recur, and added
"fast processing" to IterTreeReducer, so objects don't need to be created in the typical case. git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@145 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/statistics.py')
-rw-r--r--rdiff-backup/rdiff_backup/statistics.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/rdiff-backup/rdiff_backup/statistics.py b/rdiff-backup/rdiff_backup/statistics.py
index d471667..e2546ba 100644
--- a/rdiff-backup/rdiff_backup/statistics.py
+++ b/rdiff-backup/rdiff_backup/statistics.py
@@ -217,18 +217,17 @@ class StatsObj:
return s
-class StatsITR(IterTreeReducer, StatsObj):
+class StatsITRB(ITRBranch, StatsObj):
"""Keep track of per directory statistics
This is subclassed by the mirroring and incrementing ITRs.
"""
- def __init__(self, *args):
+ def __init__(self):
"""StatsITR initializer - zero out statistics"""
attr_dict = self.__dict__
for attr in StatsObj.stat_file_attrs: attr_dict[attr] = 0
self.ElapsedTime = self.Filename = None
- IterTreeReducer.__init__(self, *args)
def start_stats(self, mirror_dsrp):
"""Record status of mirror dsrp
@@ -273,16 +272,24 @@ class StatsITR(IterTreeReducer, StatsObj):
self.DeletedFileSize += self.mirror_base_size
self.stats_incr_incfiles(inc_rp)
+ def fast_process(self, mirror_rorp):
+ """Use when there is no change from source to mirror"""
+ source_size = self.stats_getsize(mirror_rorp)
+ self.SourceFiles += 1
+ self.MirrorFiles += 1
+ self.SourceFileSize += source_size
+ self.MirrorFileSize += source_size
+
def stats_incr_incfiles(self, inc_rp):
"""Increment IncrementFile statistics"""
if inc_rp:
self.IncrementFiles += 1
self.IncrementFileSize += self.stats_getsize(inc_rp)
- def add_file_stats(self, subinstance):
- """Add all file statistics from subinstance to current totals"""
+ def add_file_stats(self, branch):
+ """Add all file statistics from branch to current totals"""
for attr in self.stat_file_attrs:
- self.__dict__[attr] += subinstance.__dict__[attr]
+ self.__dict__[attr] += branch.__dict__[attr]
from log import *