class ComplexIface(JsonRpcIface): client = None i = 1 n = 0 x = 1 def _on_multiply_result(self, result): result = result['result'] if self.i < self.n: self.i += 1 self.client.multiply([result, self.x], self._on_multiply_result, self._on_error) else: self._on_result({'x': self.x, 'n': self.n, 'result': result}) def power(self, x, n): logging.info('Power: %s ^ %s' % (x, n)) self.i = 2 self.n = n self.x = x if n < 0: x = 1.0 / x n = -n if n == 0: return {'x': self.x, 'n': self.n, 'result': 1} elif n == 1: return {'x': self.x, 'n': self.n, 'result': x} self.i = 2 self.client = JsonRpcClient('http://localhost:8092', timeout=5) self.client.multiply([x, x], self._on_multiply_result, self._on_error)
def run(): client = JsonRpcClient('http://localhost:8082', timeout=5) for i in range(-1, 5): x = random.choice(range(1, 6)) logging.info('Power: %s ^ %s' % (x, i)) client.power([x, i], on_result, on_error) loop()
def run(): client = JsonRpcClient('http://localhost:8082', timeout=5) for i in xrange(-1, 5): x = random.choice(xrange(1, 6)) logging.info('Power: %s ^ %s' % (x, i)) client.power([x, i], on_result, on_error) loop()
def power(self, x, n): logging.info('Power: %s ^ %s' % (x, n)) self.i = 2 self.n = n self.x = x if n < 0: x = 1.0 / x n = -n if n == 0: return {'x': self.x, 'n': self.n, 'result': 1} elif n == 1: return {'x': self.x, 'n': self.n, 'result': x} self.i = 2 self.client = JsonRpcClient('http://localhost:8092', timeout=5) self.client.multiply([x, x], self._on_multiply_result, self._on_error)
def run(): def _on_result(result): message = result['echo'] logging.info('Echo: %s' % message) return message def on_result(result): message = _on_result(result) message += '.1' logging.info('Say: %s' % message) client.say([message], _on_result, on_error) def on_error(error): logging.error('Echo error: %s [%s]' % (error, error.data)) client = JsonRpcClient('http://localhost:8081', timeout=5) for i in xrange(1, 6): message = 'Hello -> %d' % i logging.info('Say: %s' % message) client.say([message], on_result, on_error) loop()
def run(): def _on_result(result): message = result['echo'] logging.info('Echo: %s' % message) return message def on_result(result): message = _on_result(result) message += '.1' logging.info('Say: %s' % message) client.say([message], _on_result, on_error) def on_error(error): logging.error('Echo error: %s [%s]' % (error, error.data)) client = JsonRpcClient('http://localhost:8081', timeout=5) for i in range(1, 6): message = 'Hello -> %d' % i logging.info('Say: %s' % message) client.say([message], on_result, on_error) loop()
class ComplexIface(JsonRpcIface): client = None i = 1 n = 0 x = 1 def _on_multiply_result(self, result): result = result['result'] if self.i < self.n: self.i += 1 self.client.multiply([result, self.x], self._on_multiply_result, self.on_error) else: self.on_result({'x': self.x, 'n': self.n, 'result': result}) def power(self, x, n): logging.info('Power: %s ^ %s' % (x, n)) self.i = 2 self.n = n self.x = x if n < 0: x = 1.0 / x n = -n if n == 0: return { 'x': self.x, 'n': self.n, 'result': 1 } elif n == 1: return { 'x': self.x, 'n': self.n, 'result': x } self.i = 2 self.client = JsonRpcClient('http://localhost:8092', timeout=5) self.client.multiply([x, x], self._on_multiply_result, self.on_error)
def power(self, x, n): logging.info('Power: %s ^ %s' % (x, n)) self.i = 2 self.n = n self.x = x if n < 0: x = 1.0 / x n = -n if n == 0: return { 'x': self.x, 'n': self.n, 'result': 1 } elif n == 1: return { 'x': self.x, 'n': self.n, 'result': x } self.i = 2 self.client = JsonRpcClient('http://localhost:8092', timeout=5) self.client.multiply([x, x], self._on_multiply_result, self.on_error)