package com.parse;

import com.parse.ParseHttpClient;
import com.parse.http.ParseHttpBody;
import com.parse.http.ParseHttpRequest;
import com.parse.http.ParseHttpResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import p137.C2742;
import p137.C2754;
import p137.InterfaceC2741;
import p138.p139.p143.p144.C2803;
import p402.p411.p413.C6635;
import p447.AbstractC6930;
import p447.AbstractC6936;
import p447.C6905;
import p447.C6926;
import p447.C6933;

/* JADX INFO: loaded from: classes.dex */
public abstract class ParseRequest<Response> {
    public static final int CORE_POOL_SIZE;
    public static final int CPU_COUNT;
    public static final int MAX_POOL_SIZE;
    public static final ExecutorService NETWORK_EXECUTOR;
    public static long defaultInitialRetryDelay;
    public static final ThreadFactory sThreadFactory = new ThreadFactory() { // from class: com.parse.ParseRequest.1
        public final AtomicInteger mCount = new AtomicInteger(1);

        @Override // java.util.concurrent.ThreadFactory
        public Thread newThread(Runnable runnable) {
            StringBuilder sbM4889 = C2803.m4889("ParseRequest.NETWORK_EXECUTOR-thread-");
            sbM4889.append(this.mCount.getAndIncrement());
            return new Thread(runnable, sbM4889.toString());
        }
    };
    public ParseHttpRequest.Method method;
    public String url;

    public static class ParseRequestException extends ParseException {
        public boolean isPermanentFailure;

        public ParseRequestException(int i, String str) {
            super(i, str);
            this.isPermanentFailure = false;
        }

        public ParseRequestException(int i, String str, Throwable th) {
            super(i, str, th);
            this.isPermanentFailure = false;
        }
    }

    static {
        int iAvailableProcessors = Runtime.getRuntime().availableProcessors();
        CPU_COUNT = iAvailableProcessors;
        int i = (iAvailableProcessors * 2) + 1;
        CORE_POOL_SIZE = i;
        int i2 = (iAvailableProcessors * 2 * 2) + 1;
        MAX_POOL_SIZE = i2;
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(i, i2, 1L, TimeUnit.SECONDS, new LinkedBlockingQueue(128), sThreadFactory);
        threadPoolExecutor.allowCoreThreadTimeOut(true);
        NETWORK_EXECUTOR = threadPoolExecutor;
        defaultInitialRetryDelay = 1000L;
    }

    public ParseRequest(ParseHttpRequest.Method method, String str) {
        this.method = method;
        this.url = str;
    }

    public C2742<Response> executeAsync(ParseHttpClient parseHttpClient) {
        return executeAsync(parseHttpClient, null, null, null);
    }

    public C2742<Response> executeAsync(ParseHttpClient parseHttpClient, ProgressCallback progressCallback, ProgressCallback progressCallback2, C2742<Void> c2742) {
        ParseHttpRequest parseHttpRequestNewRequest = newRequest(this.method, this.url, progressCallback);
        long j = defaultInitialRetryDelay;
        return executeAsync(parseHttpClient, parseHttpRequestNewRequest, 0, j + ((long) (Math.random() * j)), progressCallback2, c2742);
    }

    public final C2742<Response> executeAsync(final ParseHttpClient parseHttpClient, final ParseHttpRequest parseHttpRequest, final int i, final long j, final ProgressCallback progressCallback, final C2742<Void> c2742) {
        return (c2742 == null || !c2742.m4818()) ? C2742.m4805((Object) null).m4817(new InterfaceC2741<Void, C2742<Response>>() { // from class: com.parse.ParseRequest.3
            @Override // p137.InterfaceC2741
            public Object then(C2742<Void> c27422) {
                ParseHttpClient parseHttpClient2 = parseHttpClient;
                ParseHttpRequest parseHttpRequest2 = parseHttpRequest;
                if (!parseHttpClient2.hasExecuted) {
                    parseHttpClient2.hasExecuted = true;
                }
                C6926.C6927 c6927 = new C6926.C6927();
                ParseHttpRequest.Method method = parseHttpRequest2.method;
                int iOrdinal = method.ordinal();
                if (iOrdinal == 0) {
                    c6927.m10120("GET", (AbstractC6930) null);
                } else if (iOrdinal != 1 && iOrdinal != 2 && iOrdinal != 3) {
                    StringBuilder sbM4889 = C2803.m4889("Unsupported http method ");
                    sbM4889.append(method.toString());
                    throw new IllegalStateException(sbM4889.toString());
                }
                c6927.m10124(parseHttpRequest2.url);
                C6905.C6906 c6906 = new C6905.C6906();
                for (Map.Entry<String, String> entry : parseHttpRequest2.headers.entrySet()) {
                    c6906.m10072(entry.getKey(), entry.getValue());
                }
                c6927.m10121(c6906.m10073());
                ParseHttpBody parseHttpBody = parseHttpRequest2.body;
                ParseHttpClient.ParseOkHttpRequestBody parseOkHttpRequestBody = parseHttpBody != null ? new ParseHttpClient.ParseOkHttpRequestBody(parseHttpBody) : null;
                int iOrdinal2 = method.ordinal();
                if (iOrdinal2 == 1) {
                    if (parseOkHttpRequestBody == null) {
                        C6635.m9824("body");
                        throw null;
                    }
                    c6927.m10120("POST", parseOkHttpRequestBody);
                } else if (iOrdinal2 == 2) {
                    if (parseOkHttpRequestBody == null) {
                        C6635.m9824("body");
                        throw null;
                    }
                    c6927.m10120("PUT", parseOkHttpRequestBody);
                } else if (iOrdinal2 == 3) {
                    c6927.m10120("DELETE", parseOkHttpRequestBody);
                }
                C6933 c6933Mo10025 = parseHttpClient2.okHttpClient.mo10028(c6927.m10123()).mo10025();
                int i2 = c6933Mo10025.f20149;
                InputStream inputStreamMo10441 = c6933Mo10025.f20152.mo10137().mo10441();
                int iMo10135 = (int) c6933Mo10025.f20152.mo10135();
                String str = c6933Mo10025.f20148;
                HashMap map = new HashMap();
                C6905 c6905 = c6933Mo10025.f20151;
                if (c6905 == null) {
                    throw null;
                }
                Comparator comparator = String.CASE_INSENSITIVE_ORDER;
                C6635.m9823((Object) comparator, "java.lang.String.CASE_INSENSITIVE_ORDER");
                TreeSet treeSet = new TreeSet(comparator);
                int size = c6905.size();
                for (int i3 = 0; i3 < size; i3++) {
                    treeSet.add(c6905.m10068(i3));
                }
                Set<String> setUnmodifiableSet = Collections.unmodifiableSet(treeSet);
                C6635.m9823((Object) setUnmodifiableSet, "Collections.unmodifiableSet(result)");
                for (String str2 : setUnmodifiableSet) {
                    map.put(str2, C6933.m10126(c6933Mo10025, str2, null, 2));
                }
                AbstractC6936 abstractC6936 = c6933Mo10025.f20152;
                String str3 = (abstractC6936 == null || abstractC6936.mo10136() == null) ? null : abstractC6936.mo10136().f20035;
                ParseHttpResponse.Builder builder = new ParseHttpResponse.Builder();
                builder.statusCode = i2;
                builder.content = inputStreamMo10441;
                builder.totalSize = iMo10135;
                builder.reasonPhrase = str;
                builder.headers = new HashMap(map);
                builder.contentType = str3;
                return ParseRequest.this.onResponseAsync(new ParseHttpResponse(builder, null), progressCallback);
            }
        }, NETWORK_EXECUTOR).m4815(new InterfaceC2741<Response, C2742<Response>>() { // from class: com.parse.ParseRequest.2
            @Override // p137.InterfaceC2741
            public Object then(C2742 c27422) {
                if (!c27422.m4820()) {
                    return c27422;
                }
                Exception excM4806 = c27422.m4806();
                return excM4806 instanceof IOException ? C2742.m4804((Exception) ParseRequest.this.newTemporaryException("i/o failure", excM4806)) : c27422;
            }
        }, C2742.f8454, null).m4815(new InterfaceC2741<Response, C2742<Response>>() { // from class: com.parse.ParseRequest.4
            @Override // p137.InterfaceC2741
            public Object then(C2742 c27422) {
                Exception excM4806 = c27422.m4806();
                if (!c27422.m4820() || !(excM4806 instanceof ParseException)) {
                    return c27422;
                }
                C2742 c27423 = c2742;
                if (c27423 != null && c27423.m4818()) {
                    return C2742.f8460;
                }
                if ((excM4806 instanceof ParseRequestException) && ((ParseRequestException) excM4806).isPermanentFailure) {
                    return c27422;
                }
                if (i >= (ParsePlugins.get() == null ? 4 : ParsePlugins.get().configuration.maxRetries)) {
                    return c27422;
                }
                StringBuilder sbM4889 = C2803.m4889("Request failed. Waiting ");
                sbM4889.append(j);
                sbM4889.append(" milliseconds before attempt #");
                sbM4889.append(i + 1);
                PLog.log(4, "com.parse.ParseRequest", sbM4889.toString(), null);
                final C2754 c2754 = new C2754();
                ParseExecutors.scheduled().schedule(new Runnable() { // from class: com.parse.ParseRequest.4.1
                    @Override // java.lang.Runnable
                    public void run() {
                        AnonymousClass4 anonymousClass4 = AnonymousClass4.this;
                        ParseRequest.this.executeAsync(parseHttpClient, parseHttpRequest, i + 1, j * 2, progressCallback, c2742).m4815(new InterfaceC2741<Response, C2742<Void>>() { // from class: com.parse.ParseRequest.4.1.1
                            @Override // p137.InterfaceC2741
                            public C2742<Void> then(C2742 c27424) {
                                if (c27424.m4818()) {
                                    c2754.m4825();
                                    return null;
                                }
                                if (c27424.m4820()) {
                                    c2754.m4826(c27424.m4806());
                                    return null;
                                }
                                c2754.m4827(c27424.m4812());
                                return null;
                            }
                        }, C2742.f8455, null);
                    }
                }, j, TimeUnit.MILLISECONDS);
                return c2754.f8503;
            }
        }, C2742.f8455, null) : (C2742<Response>) C2742.f8460;
    }

    public abstract ParseHttpBody newBody(ProgressCallback progressCallback);

    public ParseHttpRequest newRequest(ParseHttpRequest.Method method, String str, ProgressCallback progressCallback) {
        ParseHttpRequest.Builder builder = new ParseHttpRequest.Builder();
        builder.method = method;
        builder.url = str;
        int iOrdinal = method.ordinal();
        if (iOrdinal != 0) {
            if (iOrdinal == 1 || iOrdinal == 2) {
                builder.body = newBody(progressCallback);
            } else if (iOrdinal != 3) {
                throw new IllegalStateException("Invalid method " + method);
            }
        }
        return new ParseHttpRequest(builder, null);
    }

    public ParseException newTemporaryException(String str, Throwable th) {
        ParseRequestException parseRequestException = new ParseRequestException(100, str, th);
        parseRequestException.isPermanentFailure = false;
        return parseRequestException;
    }

    public abstract C2742<Response> onResponseAsync(ParseHttpResponse parseHttpResponse, ProgressCallback progressCallback);
}
