package io.grpc.internal; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.common.base.MoreObjects; import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.base.Verify; import com.google.common.base.VerifyException; import io.grpc.LoadBalancerProvider; import io.grpc.LoadBalancerRegistry; import io.grpc.NameResolver; import io.grpc.Status; import io.grpc.internal.RetriableStream; import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; /* loaded from: classes6.dex */ public final class ServiceConfigUtil { private ServiceConfigUtil() { } public static Map getHealthCheckedService(Map map) { if (map == null) { return null; } return JsonUtil.getObject(map, "healthCheckConfig"); } public static String getHealthCheckedServiceName(Map map) { if (map == null) { return null; } return JsonUtil.getString(map, "serviceName"); } /* JADX INFO: Access modifiers changed from: package-private */ public static RetriableStream.Throttle getThrottlePolicy(Map map) { Map object; if (map == null || (object = JsonUtil.getObject(map, "retryThrottling")) == null) { return null; } float floatValue = JsonUtil.getNumberAsDouble(object, "maxTokens").floatValue(); float floatValue2 = JsonUtil.getNumberAsDouble(object, "tokenRatio").floatValue(); Preconditions.checkState(floatValue > BitmapDescriptorFactory.HUE_RED, "maxToken should be greater than zero"); Preconditions.checkState(floatValue2 > BitmapDescriptorFactory.HUE_RED, "tokenRatio should be greater than zero"); return new RetriableStream.Throttle(floatValue, floatValue2); } /* JADX INFO: Access modifiers changed from: package-private */ public static Integer getMaxAttemptsFromRetryPolicy(Map map) { return JsonUtil.getNumberAsInteger(map, "maxAttempts"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Long getInitialBackoffNanosFromRetryPolicy(Map map) { return JsonUtil.getStringAsDuration(map, "initialBackoff"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Long getMaxBackoffNanosFromRetryPolicy(Map map) { return JsonUtil.getStringAsDuration(map, "maxBackoff"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Double getBackoffMultiplierFromRetryPolicy(Map map) { return JsonUtil.getNumberAsDouble(map, "backoffMultiplier"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Long getPerAttemptRecvTimeoutNanosFromRetryPolicy(Map map) { return JsonUtil.getStringAsDuration(map, "perAttemptRecvTimeout"); } private static Set getListOfStatusCodesAsSet(Map map, String str) { List list = JsonUtil.getList(map, str); if (list == null) { return null; } return getStatusCodesFromList(list); } private static Set getStatusCodesFromList(List list) { Status.Code valueOf; EnumSet noneOf = EnumSet.noneOf(Status.Code.class); for (Object obj : list) { if (obj instanceof Double) { Double d = (Double) obj; int intValue = d.intValue(); Verify.verify(((double) intValue) == d.doubleValue(), "Status code %s is not integral", obj); valueOf = Status.fromCodeValue(intValue).getCode(); Verify.verify(valueOf.value() == d.intValue(), "Status code %s is not valid", obj); } else if (obj instanceof String) { try { valueOf = Status.Code.valueOf((String) obj); } catch (IllegalArgumentException e) { StringBuilder sb = new StringBuilder("Status code "); sb.append(obj); sb.append(" is not valid"); throw new VerifyException(sb.toString(), e); } } else { StringBuilder sb2 = new StringBuilder("Can not convert status code "); sb2.append(obj); sb2.append(" to Status.Code, because its type is "); sb2.append(obj.getClass()); throw new VerifyException(sb2.toString()); } noneOf.add(valueOf); } return Collections.unmodifiableSet(noneOf); } /* JADX INFO: Access modifiers changed from: package-private */ public static Set getRetryableStatusCodesFromRetryPolicy(Map map) { Set listOfStatusCodesAsSet = getListOfStatusCodesAsSet(map, "retryableStatusCodes"); Verify.verify(listOfStatusCodesAsSet != null, "%s is required in retry policy", "retryableStatusCodes"); Verify.verify(true ^ listOfStatusCodesAsSet.contains(Status.Code.OK), "%s must not contain OK", "retryableStatusCodes"); return listOfStatusCodesAsSet; } /* JADX INFO: Access modifiers changed from: package-private */ public static Integer getMaxAttemptsFromHedgingPolicy(Map map) { return JsonUtil.getNumberAsInteger(map, "maxAttempts"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Long getHedgingDelayNanosFromHedgingPolicy(Map map) { return JsonUtil.getStringAsDuration(map, "hedgingDelay"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Set getNonFatalStatusCodesFromHedgingPolicy(Map map) { Set listOfStatusCodesAsSet = getListOfStatusCodesAsSet(map, "nonFatalStatusCodes"); if (listOfStatusCodesAsSet != null) { Verify.verify(!listOfStatusCodesAsSet.contains(Status.Code.OK), "%s must not contain OK", "nonFatalStatusCodes"); return listOfStatusCodesAsSet; } return Collections.unmodifiableSet(EnumSet.noneOf(Status.Code.class)); } /* JADX INFO: Access modifiers changed from: package-private */ public static String getServiceFromName(Map map) { return JsonUtil.getString(map, "service"); } /* JADX INFO: Access modifiers changed from: package-private */ public static String getMethodFromName(Map map) { return JsonUtil.getString(map, "method"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Map getRetryPolicyFromMethodConfig(Map map) { return JsonUtil.getObject(map, "retryPolicy"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Map getHedgingPolicyFromMethodConfig(Map map) { return JsonUtil.getObject(map, "hedgingPolicy"); } /* JADX INFO: Access modifiers changed from: package-private */ public static List> getNameListFromMethodConfig(Map map) { return JsonUtil.getListOfObjects(map, "name"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Long getTimeoutFromMethodConfig(Map map) { return JsonUtil.getStringAsDuration(map, "timeout"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Boolean getWaitForReadyFromMethodConfig(Map map) { return JsonUtil.getBoolean(map, "waitForReady"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Integer getMaxRequestMessageBytesFromMethodConfig(Map map) { return JsonUtil.getNumberAsInteger(map, "maxRequestMessageBytes"); } /* JADX INFO: Access modifiers changed from: package-private */ public static Integer getMaxResponseMessageBytesFromMethodConfig(Map map) { return JsonUtil.getNumberAsInteger(map, "maxResponseMessageBytes"); } /* JADX INFO: Access modifiers changed from: package-private */ public static List> getMethodConfigFromServiceConfig(Map map) { return JsonUtil.getListOfObjects(map, "methodConfig"); } public static List> getLoadBalancingConfigsFromServiceConfig(Map map) { String string; ArrayList arrayList = new ArrayList(); if (map.containsKey("loadBalancingConfig")) { arrayList.addAll(JsonUtil.getListOfObjects(map, "loadBalancingConfig")); } if (arrayList.isEmpty() && (string = JsonUtil.getString(map, "loadBalancingPolicy")) != null) { arrayList.add(Collections.singletonMap(string.toLowerCase(Locale.ROOT), Collections.emptyMap())); } return Collections.unmodifiableList(arrayList); } public static LbConfig unwrapLoadBalancingConfig(Map map) { if (map.size() != 1) { StringBuilder sb = new StringBuilder("There are "); sb.append(map.size()); sb.append(" fields in a LoadBalancingConfig object. Exactly one is expected. Config="); sb.append(map); throw new RuntimeException(sb.toString()); } String key = map.entrySet().iterator().next().getKey(); return new LbConfig(key, JsonUtil.getObject(map, key)); } public static List unwrapLoadBalancingConfigList(List> list) { if (list == null) { return null; } ArrayList arrayList = new ArrayList(); Iterator> it = list.iterator(); while (it.hasNext()) { arrayList.add(unwrapLoadBalancingConfig(it.next())); } return Collections.unmodifiableList(arrayList); } public static NameResolver.ConfigOrError selectLbPolicyFromList(List list, LoadBalancerRegistry loadBalancerRegistry) { ArrayList arrayList = new ArrayList(); for (LbConfig lbConfig : list) { String policyName = lbConfig.getPolicyName(); LoadBalancerProvider provider = loadBalancerRegistry.getProvider(policyName); if (provider == null) { arrayList.add(policyName); } else { if (!arrayList.isEmpty()) { Logger.getLogger(ServiceConfigUtil.class.getName()).log(Level.FINEST, "{0} specified by Service Config are not available", arrayList); } NameResolver.ConfigOrError parseLoadBalancingPolicyConfig = provider.parseLoadBalancingPolicyConfig(lbConfig.getRawConfigValue()); return parseLoadBalancingPolicyConfig.getError() != null ? parseLoadBalancingPolicyConfig : NameResolver.ConfigOrError.fromConfig(new PolicySelection(provider, parseLoadBalancingPolicyConfig.getConfig())); } } Status status = Status.UNKNOWN; StringBuilder sb = new StringBuilder("None of "); sb.append(arrayList); sb.append(" specified by Service Config are available."); return NameResolver.ConfigOrError.fromError(status.withDescription(sb.toString())); } /* loaded from: classes6.dex */ public static final class LbConfig { private final String policyName; private final Map rawConfigValue; public LbConfig(String str, Map map) { this.policyName = (String) Preconditions.checkNotNull(str, "policyName"); this.rawConfigValue = (Map) Preconditions.checkNotNull(map, "rawConfigValue"); } public final boolean equals(Object obj) { if (!(obj instanceof LbConfig)) { return false; } LbConfig lbConfig = (LbConfig) obj; return this.policyName.equals(lbConfig.policyName) && this.rawConfigValue.equals(lbConfig.rawConfigValue); } public final int hashCode() { return Objects.hashCode(this.policyName, this.rawConfigValue); } public final String toString() { return MoreObjects.toStringHelper(this).add("policyName", this.policyName).add("rawConfigValue", this.rawConfigValue).toString(); } public final Map getRawConfigValue() { return this.rawConfigValue; } public final String getPolicyName() { return this.policyName; } } /* loaded from: classes6.dex */ public static final class PolicySelection { final Object config; final LoadBalancerProvider provider; public PolicySelection(LoadBalancerProvider loadBalancerProvider, Object obj) { this.provider = (LoadBalancerProvider) Preconditions.checkNotNull(loadBalancerProvider, "provider"); this.config = obj; } public final boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } PolicySelection policySelection = (PolicySelection) obj; return Objects.equal(this.provider, policySelection.provider) && Objects.equal(this.config, policySelection.config); } public final int hashCode() { return Objects.hashCode(this.provider, this.config); } public final String toString() { return MoreObjects.toStringHelper(this).add("provider", this.provider).add("config", this.config).toString(); } public final LoadBalancerProvider getProvider() { return this.provider; } public final Object getConfig() { return this.config; } } }