]> git.mxchange.org Git - quix0rs-apt-p2p.git/blobdiff - node.py
mo' constants
[quix0rs-apt-p2p.git] / node.py
diff --git a/node.py b/node.py
index 6bc2ef2e7da0cf995cf30f9b287b86046d4b41d4..1e1c0bd1f9ea19759b67f920703a6fb06cc27ef1 100644 (file)
--- a/node.py
+++ b/node.py
@@ -1,21 +1,42 @@
 import hash
 import time
 from types import *
+from xmlrpclib import Binary
 
 class Node:
     """encapsulate contact info"""
-    def __init__(self, id, host, port):
+    
+    def __init__(self):
+       self.fails = 0
+       self.lastSeen = 0
+       self.id = self.host = self.port = ''
+       
+    def init(self, id, host, port):
        self.id = id
        self.int = hash.intify(id)
        self.host = host
        self.port = port
-       self.lastSeen = time.time()
+       self._senderDict = {'id': Binary(self.id), 'port' : self.port, 'host' : self.host}
+       return self
+       
+    def initWithDict(self, dict):
+       self._senderDict = dict
+       self.id = dict['id'].data
+       self.int = hash.intify(self.id)
+       self.port = dict['port']
+       self.host = dict['host']
+       return self
        
     def updateLastSeen(self):
        self.lastSeen = time.time()
-
+       self.fails = 0
+       
+    def msgFailed(self):
+       self.fails = self.fails + 1
+       return self.fails
+       
     def senderDict(self):
-       return {'id': self.id, 'port' : self.port, 'host' : self.host}
+       return self._senderDict
        
     def __repr__(self):
        return `(self.id, self.host, self.port)`
@@ -51,7 +72,7 @@ import unittest
 
 class TestNode(unittest.TestCase):
     def setUp(self):
-       self.node = Node(hash.newID(), 'localhost', 2002)
+       self.node = Node().init(hash.newID(), 'localhost', 2002)
     def testUpdateLastSeen(self):
        t = self.node.lastSeen
        self.node.updateLastSeen()