def _send(self, response): txtResponse = None try: txtResponse = json.dumps(response, self) except Exception, e: _log.error("An unexpected error ocurred when trying to create the message: %r", e) response = { 'result': None, 'error': "InternalServerError: " + repr(e), 'id': item['id'] } txtResponse = json.dumps(response, self)
def _send(self, response): txtResponse = None try: txtResponse = json.dumps(response, self) except Exception as e: _log.error("An unexpected error ocurred when trying to create the message: %r", e) response = {"result": None, "error": "InternalServerError: " + repr(e), "id": item["id"]} txtResponse = json.dumps(response, self) try: self.write(txtResponse) except TypeError: _log.debug("response was: %r", response) raise
def _send(self, response): txtResponse = None try: txtResponse = json.dumps(response, self) except Exception as e: _log.error("An unexpected error ocurred when trying to create the message: %r", e) response = { 'result': None, 'error': "InternalServerError: " + repr(e) } txtResponse = json.dumps(response, self) try: self.write(txtResponse) except TypeError: _log.debug("response was: %r", response) raise
def dispatch_item_single(self, item): """ Given a JSON item received from socket, determine its type and process the message. """ assert(type(item) is dict) response = None if 'id' not in item: item['id'] = None if 'method' in item: response = self._dispatch_method(item) elif 'result' in item: assert(item['id'] in self._requests) request = self._requests[item['id']] del self._requests[item['id']] request.setresponse(item) else: response = { 'result': None, 'error': "Unknown format", 'id': item['id'] } if response is not None: txtResponse = None try: txtResponse = json.dumps(response, self) except Exception, e: _log.error("An unexpected error ocurred when trying to create the message: %r", e) response = { 'result': None, 'error': "InternalServerError: " + repr(e), 'id': item['id'] } txtResponse = json.dumps(response, self) try: self.write(txtResponse) except TypeError: _log.debug("response was: %r", response) raise
def __init__(self, conn, request_data): self.conn = conn self.data = request_data self.response = None self.event_response = Event() self.callbacks = [] self.thread_wait = self.event_response.wait self.request_id = None if 'id' in self.data: self.request_id = self.data['id'] if self.request_id: self.conn.addrequest(self) data = json.dumps(self.data, self.conn) self.conn.write(data)
def __init__(self, conn, request_data): self.conn = conn self.data = request_data self.responses = Queue() # TODO: Now that we have a Queue, do we need an Event (and a cv)? self.event_response = Event() self.callbacks = [] self.thread_wait = self.event_response.wait self.request_id = None self.auto_close = False if 'id' in self.data: self.request_id = self.data['id'] if self.request_id: self.auto_close = True self.conn.addrequest(self) data = json.dumps(self.data, self.conn) self.conn.write(data)
def proxy(self, sync_type, name, args, kwargs): """ Call method on server. sync_type :: = 0 .. call method, wait, get response. = 1 .. call method, inmediate return of object. = 2 .. call notification and exit. """ data = {} data['method'] = name if sync_type in [0, 1]: data['id'] = self.get_id() if len(args) > 0: data['params'] = args if len(kwargs) > 0: if len(args) == 0: data['params'] = kwargs else: data['kwparams'] = kwargs if sync_type == 2: # short-circuit for speed! self.write(json.dumps(data, self)) return None req = Request(self, data) if sync_type == 2: return None if sync_type == 1: return req return req.value
def proxy(self, sync_type, name, args, kwargs): """ Call method on server. sync_type :: = 0 .. call method, wait, get response. = 1 .. call method, inmediate return of object. = 2 .. call notification and exit. = 3 .. call method, inmediate return of non-auto-close object. """ data = {} data["method"] = name if sync_type in [0, 1, 3]: data["id"] = self.get_id() if len(args) > 0: data["params"] = args if len(kwargs) > 0: if len(args) == 0: data["params"] = kwargs else: data["kwparams"] = kwargs if sync_type == 2: # short-circuit for speed! self.write(json.dumps(data, self)) return None req = Request(self, data) if sync_type == 0: return req.value if sync_type == 3: req.auto_close = False return req
def proxy(self, sync_type, name, args, kwargs): """ Call method on server. sync_type :: = 0 .. call method, wait, get response. = 1 .. call method, inmediate return of object. = 2 .. call notification and exit. = 3 .. call method, inmediate return of non-auto-close object. """ data = {} data['method'] = name if sync_type in [0, 1, 3]: data['id'] = self.get_id() if len(args) > 0: data['params'] = args if len(kwargs) > 0: if len(args) == 0: data['params'] = kwargs else: data['kwparams'] = kwargs if sync_type == 2: # short-circuit for speed! self.write(json.dumps(data, self)) return None req = Request(self, data) if sync_type == 0: return req.value if sync_type == 3: req.auto_close = False return req