]> git.mxchange.org Git - quix0rs-apt-p2p.git/commitdiff
Switch from the time module to the datetime module.
authorCameron Dale <camrdale@gmail.com>
Tue, 8 Jan 2008 22:48:21 +0000 (14:48 -0800)
committerCameron Dale <camrdale@gmail.com>
Tue, 8 Jan 2008 22:48:21 +0000 (14:48 -0800)
apt_dht_Khashmir/actions.py
apt_dht_Khashmir/db.py
apt_dht_Khashmir/khashmir.py
apt_dht_Khashmir/ktable.py
apt_dht_Khashmir/node.py

index 4214e4eb932580230aa0552a5270d86eba10b124..860205cf87851e0ccb43fb8a29a45ce70d9cc0ec 100644 (file)
@@ -1,8 +1,6 @@
 ## Copyright 2002-2004 Andrew Loewenstern, All Rights Reserved
 # see LICENSE.txt for license information
 
-from time import time
-
 from twisted.internet import reactor
 
 from khash import intify
@@ -263,7 +261,7 @@ class KeyExpirer:
         self.next_expire = reactor.callLater(self.config['KEINITIAL_DELAY'], self.doExpire)
     
     def doExpire(self):
-        self.store.expireValues(time() - self.config['KE_AGE'])
+        self.store.expireValues(self.config['KE_AGE'])
         self.next_expire = reactor.callLater(self.config['KE_DELAY'], self.doExpire)
         
     def shutdown(self):
index 809885af1d2599aae75d15faacd230337b5bb32e..547fb8107ec626fd777589586d2f9f005c4861d9 100644 (file)
@@ -1,5 +1,5 @@
 
-from time import time
+from datetime import datetime, timedelta
 from pysqlite2 import dbapi2 as sqlite
 import os
 
@@ -81,14 +81,13 @@ class DB:
 
     def storeValue(self, key, value):
         """Store or update a key and value."""
-        t = "%0.6f" % time()
         c = self.conn.cursor()
-        c.execute("INSERT OR REPLACE INTO kv VALUES (?, ?, ?)", (key, value, t))
+        c.execute("INSERT OR REPLACE INTO kv VALUES (?, ?, ?)", (key, value, datetime.now()))
         self.conn.commit()
 
-    def expireValues(self, expireTime):
-        """Expire older values than expireTime."""
-        t = "%0.6f" % expireTime
+    def expireValues(self, expireAfter):
+        """Expire older values after expireAfter seconds."""
+        t = datetime.now() - timedelta(seconds=expireAfter)
         c = self.conn.cursor()
         c.execute("DELETE FROM kv WHERE time < ?", (t, ))
         self.conn.commit()
index be60243dcd23bb26a0ed8831c16019eb5cc5adc6..e48e70202b48d2bca50d690d6687c06c1d2b87c6 100644 (file)
@@ -4,7 +4,7 @@
 import warnings
 warnings.simplefilter("ignore", DeprecationWarning)
 
-from time import time
+from datetime import datetime, timedelta
 from random import randrange
 from sha import sha
 import os
@@ -37,7 +37,6 @@ class KhashmirBase(protocol.Factory):
         self.udp = krpc.hostbroker(self)
         self.udp.protocol = krpc.KRPC
         self.listenport = reactor.listenUDP(self.port, self.udp)
-        self.last = time()
         self._loadRoutingTable()
         self.expirer = KeyExpirer(self.store, config)
         self.refreshTable(force=1)
@@ -115,7 +114,9 @@ class KhashmirBase(protocol.Factory):
         method needs to be a properly formed Node object with a valid ID.
         """
         old = self.table.insertNode(n, contacted=contacted)
-        if old and (time() - old.lastSeen) > self.config['MIN_PING_INTERVAL'] and old.id != self.node.id:
+        if (old and old.id != self.node.id and
+            (datetime.now() - old.lastSeen) > 
+             timedelta(seconds=self.config['MIN_PING_INTERVAL'])):
             # the bucket is full, check to see if old node is still around and if so, replace it
             
             ## these are the callbacks used when we ping the oldest node in a bucket
@@ -173,7 +174,8 @@ class KhashmirBase(protocol.Factory):
             pass
     
         for bucket in self.table.buckets:
-            if force or (time() - bucket.lastAccessed >= self.config['BUCKET_STALENESS']):
+            if force or (datetime.now() - bucket.lastAccessed > 
+                         timedelta(seconds=self.config['BUCKET_STALENESS'])):
                 id = newIDInRange(bucket.min, bucket.max)
                 self.findNode(id, callback)
 
index c27d6c31ac1a1b084b66dc5813db3952493a7a07..85abe4a82553dca0709b2561d2b3e3f95963f15d 100644 (file)
@@ -1,7 +1,7 @@
 ## Copyright 2002-2003 Andrew Loewenstern, All Rights Reserved
 # see LICENSE.txt for license information
 
-from time import time
+from datetime import datetime
 from bisect import bisect_left
 
 from twisted.trial import unittest
@@ -174,10 +174,10 @@ class KBucket:
         self.l = contents
         self.min = min
         self.max = max
-        self.lastAccessed = time()
+        self.lastAccessed = datetime.now()
         
     def touch(self):
-        self.lastAccessed = time()
+        self.lastAccessed = datetime.now()
     
     def getNodeWithInt(self, num):
         if num in self.l: return num
index dabe08cec4631b5a06e9b18d07262c75f01e464a..5f11e51453acf06322b6d17485cb8489143eb5e4 100644 (file)
@@ -1,7 +1,7 @@
 ## Copyright 2002-2003 Andrew Loewenstern, All Rights Reserved
 # see LICENSE.txt for license information
 
-from time import time
+from datetime import datetime, MINYEAR
 from types import InstanceType
 
 from twisted.trial import unittest
@@ -15,7 +15,7 @@ class Node:
     """encapsulate contact info"""
     def __init__(self):
         self.fails = 0
-        self.lastSeen = 0
+        self.lastSeen = datetime(MINYEAR, 1, 1)
         self.id = self.host = self.port = ''
     
     def init(self, id, host, port):
@@ -35,7 +35,7 @@ class Node:
         return self
     
     def updateLastSeen(self):
-        self.lastSeen = time()
+        self.lastSeen = datetime.now()
         self.fails = 0
     
     def msgFailed(self):