def _read_message(self, socket): """ Exceptions: IOError """ try: size_as_raw_string = utils.recv_size(socket, 4, self._ev_stop_getter) if self._stop: return None if size_as_raw_string == '': return None size_as_uint = long(struct.unpack('I', size_as_raw_string)[0]) message_as_raw_string = utils.recv_size(socket, size_as_uint, self._ev_stop_getter) if self._stop: return None if message_as_raw_string == '': return None result = CommandMessage() result.ParseFromString(message_as_raw_string) return result except ValueError, e: raise utils.wrap_exc(IOError, "can't parse a length of a packet", e)
size_as_uint = long(struct.unpack('I', size_as_raw_string)[0]) message_as_raw_string = utils.recv_size(socket, size_as_uint, self._ev_stop_getter) if self._stop: return None if message_as_raw_string == '': return None result = CommandMessage() result.ParseFromString(message_as_raw_string) return result except ValueError, e: raise utils.wrap_exc(IOError, "can't parse a length of a packet", e) except DecodeError, e: raise utils.wrap_exc(IOError, "can't parse protobuf message", e) except origin_socket.error, e: raise utils.wrap_exc(IOError, "socket reading error", e) def _send_message(self, message, sock): message_as_string = message.SerializeToString() header = struct.pack('I', len(message_as_string)) assert len(header) == 4 try: sock.sendall(header) sock.sendall(message_as_string) except origin_socket.error: print traceback.format_exc() #noinspection PyUnresolvedReferences def _create_message(self, solver_result):