Example #1
0
  def SendRequest(self, method_descriptor, request, rpc_controller = None):
    # request packet format:
    # content-size(4B) + seqno(8B) + hash(method_name)(8B)
    #   + serialized bytes of request message
    head_size = 20
    seqno = self.__seqno
    self.__seqno += 1

    msg_size = request.ByteSize()
    packet = struct.pack('=IQQ%ds' % msg_size, msg_size + head_size,
                         seqno, internal.hash_string(method_descriptor.full_name),
                         request.SerializeToString())
    self.__sock.send(packet)
    return seqno
Example #2
0
    def SendRequest(self, method_descriptor, request, rpc_controller=None):
        # request packet format:
        # content-size(4B) + seqno(8B) + hash(method_name)(8B)
        #   + serialized bytes of request message
        head_size = 20
        seqno = self.__seqno
        self.__seqno += 1

        msg_size = request.ByteSize()
        packet = struct.pack('=IQQ%ds' % msg_size, msg_size + head_size, seqno,
                             internal.hash_string(method_descriptor.full_name),
                             request.SerializeToString())
        self.__sock.send(packet)
        return seqno
Example #3
0
 def __import_svc(self, svc_full_name):
   logging.info('import service:%s' % svc_full_name)
   i = svc_full_name.rfind('.')
   if i != -1:
     exec 'import %s' % svc_full_name[:i]
   exec 'svc_class = %s' % svc_full_name
   svc_obj = svc_class()
   svc_desc = svc_class.DESCRIPTOR
   index = 0
   methods = {}
   for method_desc in svc_desc.methods:
     method_id = internal.hash_string(method_desc.full_name)
     logging.debug('import method:%d,%s' % (method_id, method_desc.full_name))
     methods[method_id] = (index, getattr(svc_obj, method_desc.name),
                           svc_obj.GetRequestClass(method_desc),
                           svc_obj.GetResponseClass(method_desc))
     index += 1
   return (svc_obj, methods)
Example #4
0
 def __import_svc(self, svc_full_name):
     logging.info('import service:%s' % svc_full_name)
     i = svc_full_name.rfind('.')
     if i != -1:
         exec 'import %s' % svc_full_name[:i]
     exec 'svc_class = %s' % svc_full_name
     svc_obj = svc_class()
     svc_desc = svc_class.DESCRIPTOR
     index = 0
     methods = {}
     for method_desc in svc_desc.methods:
         method_id = internal.hash_string(method_desc.full_name)
         logging.debug('import method:%d,%s' %
                       (method_id, method_desc.full_name))
         methods[method_id] = (index, getattr(svc_obj, method_desc.name),
                               svc_obj.GetRequestClass(method_desc),
                               svc_obj.GetResponseClass(method_desc))
         index += 1
     return (svc_obj, methods)