summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-12-07 11:31:17 +0000
committerLars Wirzenius <liw@liw.fi>2010-12-07 11:31:17 +0000
commit2bdb0fac50badb82ebb5f57e3bb5ed107d8ae1d4 (patch)
treed65355b1e7c549ec530eca75345c966845737579
parent53da02102f72ed4f7237ba31827d044d6bb5aa69 (diff)
downloadobnam-2bdb0fac50badb82ebb5f57e3bb5ed107d8ae1d4.tar.gz
Change ChecksumTree to use new StoreTree stuff.
-rw-r--r--obnamlib/checksumtree.py26
1 files changed, 9 insertions, 17 deletions
diff --git a/obnamlib/checksumtree.py b/obnamlib/checksumtree.py
index 3e2a6daa..0b5d6d87 100644
--- a/obnamlib/checksumtree.py
+++ b/obnamlib/checksumtree.py
@@ -42,38 +42,30 @@ class ChecksumTree(obnamlib.StoreTree):
return struct.unpack(self.fmt, key)
def add(self, checksum, chunk_id, client_id):
- self.require_forest()
+ self.start_changes()
key = self.key(checksum, chunk_id, client_id)
- if self.forest.trees:
- t = self.forest.trees[-1]
- else:
- t = self.forest.new_tree()
- t.insert(key, '')
+ self.tree.insert(key, '')
def find(self, checksum):
- if self.init_forest() and self.forest.trees:
- t = self.forest.trees[-1]
+ if self.init_forest() and self.tree:
minkey = self.key(checksum, 0, 0)
maxkey = self.key(checksum, obnamlib.MAX_ID, obnamlib.MAX_ID)
- pairs = t.lookup_range(minkey, maxkey)
+ pairs = self.tree.lookup_range(minkey, maxkey)
return [self.unkey(key)[1] for key, value in pairs]
else:
return []
def remove(self, checksum, chunk_id, client_id):
- self.require_forest()
- if self.forest.trees:
- t = self.forest.trees[-1]
- key = self.key(checksum, chunk_id, client_id)
- t.remove_range(key, key)
+ self.start_changes()
+ key = self.key(checksum, chunk_id, client_id)
+ self.tree.remove_range(key, key)
def chunk_is_used(self, checksum, chunk_id):
'''Is a given chunk used by anyone?'''
- if self.init_forest() and self.forest.trees:
- t = self.forest.trees[-1]
+ if self.init_forest() and self.tree:
minkey = self.key(checksum, chunk_id, 0)
maxkey = self.key(checksum, chunk_id, obnamlib.MAX_ID)
- return len(t.lookup_range(minkey, maxkey)) > 0
+ return len(self.tree.lookup_range(minkey, maxkey)) > 0
else:
return False