Esempio n. 1
0
    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)
Esempio n. 2
0
    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()
Esempio n. 3
0
    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]
Esempio n. 4
0
 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()
Esempio n. 5
0
 def setUp(self):
     self.tokenizer = _Tokenizer()