def send_um(self, method_name, params=None): """Send service method request :param method_name: method name (e.g. ``Player.GetGameBadgeLevels#1``) :type method_name: :class:`str` :param params: message parameters :type params: :class:`dict` :return: ``job_id`` identifier :rtype: :class:`str` Listen for ``jobid`` on this object to catch the response. """ proto = get_um(method_name) if proto is None: raise ValueError("Failed to find method named: %s" % method_name) message = MsgProto(EMsg.ServiceMethodCallFromClient) message.header.target_job_name = method_name message.body = proto() if params: proto_fill_from_dict(message.body, params) return self.send_job(message)
def get(self, method_name): """Get request proto instance for given methed name :param method_name: name for the method (e.g. ``Player.GetGameBadgeLevels#1``) :type method_name: :class:`str` :return: proto message instance, or :class:`None` if not found """ proto = get_um(method_name) if proto is None: return None message = proto() self._data[message] = method_name return message
def _handle_client_service_method(self, message): method_name = message.body.method_name proto = get_um(method_name, response=True) if proto is None: self._LOG("Unable to find proto for %s" % repr(method_name)) return resp = proto() resp.ParseFromString(message.body.serialized_method_response) self.emit(method_name, resp) jobid = message.header.jobid_target if jobid not in (-1, 18446744073709551615): self.emit("job_%d" % jobid, resp)
def _handle_client_service_method(self, message): method_name = message.body.method_name proto = get_um(method_name, response=True) if proto is None: self._LOG.error("Unable to find proto for %s" % repr(method_name)) return error = None if message.header.eresult != EResult.OK: error = UnifiedMessageError(message.header.error_message, EResult(message.header.eresult), ) resp = proto() resp.ParseFromString(message.body.serialized_method_response) self.emit(method_name, resp, error) jobid = message.header.jobid_target if jobid not in (-1, 18446744073709551615): self.emit("job_%d" % jobid, resp, error)
def _handle_client_service_method(self, message): method_name = message.body.method_name proto = get_um(method_name, response=True) if proto is None: self._LOG.error("Unable to find proto for %s" % repr(method_name)) return error = None if message.header.eresult != EResult.OK: error = UnifiedMessageError( message.header.error_message, EResult(message.header.eresult), ) resp = proto() resp.ParseFromString(message.body.serialized_method_response) self.emit(method_name, resp, error) jobid = message.header.jobid_target if jobid not in (-1, 18446744073709551615): self.emit("job_%d" % jobid, resp, error)