Beispiel #1
0
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)
Beispiel #2
0
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)