def CallMethod(self, method_descriptor, rpc_controller, request, response_class, done): call = Call() call.method = method_descriptor.name call.request = request.SerializeToString() self.token += 1 call.token = self.token d = Deferred() d.addCallback(self.parseResponse, response_class) d.addCallback(done) self.pending[self.token] = d box = Box() box.call = call.SerializeToString() self.sendString(box.SerializeToString())