MCPcopy Index your code
hub / github.com/HelloZeroNet/ZeroNet / PeerHashfield

Class PeerHashfield

src/Peer/PeerHashfield.py:5–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3
4
5class PeerHashfield(object):
6 __slots__ = ("storage", "time_changed", "append", "remove", "tobytes", "frombytes", "__len__", "__iter__")
7 def __init__(self):
8 self.storage = self.createStorage()
9 self.time_changed = time.time()
10
11 def createStorage(self):
12 storage = array.array("H")
13 self.append = storage.append
14 self.remove = storage.remove
15 self.tobytes = storage.tobytes
16 self.frombytes = storage.frombytes
17 self.__len__ = storage.__len__
18 self.__iter__ = storage.__iter__
19 return storage
20
21 def appendHash(self, hash):
22 hash_id = int(hash[0:4], 16)
23 if hash_id not in self.storage:
24 self.storage.append(hash_id)
25 self.time_changed = time.time()
26 return True
27 else:
28 return False
29
30 def appendHashId(self, hash_id):
31 if hash_id not in self.storage:
32 self.storage.append(hash_id)
33 self.time_changed = time.time()
34 return True
35 else:
36 return False
37
38 def removeHash(self, hash):
39 hash_id = int(hash[0:4], 16)
40 if hash_id in self.storage:
41 self.storage.remove(hash_id)
42 self.time_changed = time.time()
43 return True
44 else:
45 return False
46
47 def removeHashId(self, hash_id):
48 if hash_id in self.storage:
49 self.storage.remove(hash_id)
50 self.time_changed = time.time()
51 return True
52 else:
53 return False
54
55 def getHashId(self, hash):
56 return int(hash[0:4], 16)
57
58 def hasHash(self, hash):
59 return int(hash[0:4], 16) in self.storage
60
61 def replaceFromBytes(self, hashfield_raw):
62 self.storage = self.createStorage()

Callers 3

__init__Method · 0.90
__getattr__Method · 0.90
PeerHashfield.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected