2 from twisted.internet.defer import Deferred
3 from xmlrpcclient import XMLRPCClientFactory as factory
4 from const import reactor, NULL_ID
5 from xmlrpclib import Binary
9 def makeResponse(self, df):
10 def _callback(args, d=df):
16 if self.id != NULL_ID and sender['id'].data != self.id:
21 def ping(self, sender):
23 f = factory('ping', (sender,), self.makeResponse(df), df.errback)
24 reactor.connectTCP(self.host, self.port, f)
26 def findNode(self, target, sender):
28 f = factory('find_node', (Binary(target), sender), self.makeResponse(df), df.errback)
29 reactor.connectTCP(self.host, self.port, f)
31 def storeValue(self, key, value, sender):
33 f = factory('store_value', (Binary(key), Binary(value), sender), self.makeResponse(df), df.errback)
34 reactor.connectTCP(self.host, self.port, f)
36 def findValue(self, key, sender):
38 f = factory('find_value', (Binary(key), sender), self.makeResponse(df), df.errback)
39 reactor.connectTCP(self.host, self.port, f)