def deserialize(cls, serialized): tokenizer = _Tokenizer() string = StringIO(serialized) method_len = tokenizer.read_int(string) method = tokenizer.read_str(string, method_len) data_len = tokenizer.read_int(string) data = tokenizer.read_str(string, data_len) return _RpcRequest('', method, data)
def serialize(cls, request): tokenizer = _Tokenizer() serialized = StringIO() tokenizer.write_int(serialized, len(request.method)) tokenizer.write_str(serialized, request.method) # TODO: Get rid of this len tokenizer.write_int(serialized, len(request.data)) tokenizer.write_str(serialized, request.data) return serialized.getvalue()
def deserialize(cls, string, message_class): if message_class not in cls._message_descriptors: raise Exception('Message %s does not have associated descriptor.' % message_class) # descriptor = cls._message_descriptors[message_class] tokenizer = _Tokenizer() string_stream = cStringIO.StringIO(string) if not isinstance(string, cStringIO.InputType) else string try: return cls._read_object(tokenizer, string_stream, message_class) except Exception as e: raise SerializerException('Deserialization error: %s.' % e.message), None, sys.exc_info()[2]
def serialize(cls, message): if message._descriptor is None: raise SerializerException('Message %s does not have associated descriptor.' % message.__class__.__name__) descriptor = message.get_descriptor() tokenizer = _Tokenizer() output_str = cStringIO.StringIO() try: cls._write_object(tokenizer, output_str, descriptor, message) except Exception as e: raise SerializerException('Serialization error: %s.' % e.message), None, sys.exc_info()[2] return output_str.getvalue()
def setUp(self): self.tokenizer = _Tokenizer()