aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/java/com/android/volley/RetryPolicy.java
diff options
context:
space:
mode:
authorAnonymous <no-reply@google.com>2021-07-09 17:26:36 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-07-09 17:26:36 +0000
commitba6983e134f8f64ced7921f506862a7fcee59d19 (patch)
treecf5d56ccdb862fd9676c855f919408ef940bc019 /core/src/main/java/com/android/volley/RetryPolicy.java
parent24517b4559c8a823510769f268af200e939c3278 (diff)
parentf33c2e45dc1216afdbf25b5ef332bac873af3771 (diff)
downloadvolley-ba6983e134f8f64ced7921f506862a7fcee59d19.tar.gz
Import of Volley from GitHub to AOSP. am: 212e7004ac am: f77c53c3a3 am: f33c2e45dc
Original change: https://android-review.googlesource.com/c/platform/external/volley/+/1758419 Change-Id: Idc49fc99ab51102f2cb38f83630c44d3a7ef5b7a
Diffstat (limited to 'core/src/main/java/com/android/volley/RetryPolicy.java')
-rw-r--r--core/src/main/java/com/android/volley/RetryPolicy.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/core/src/main/java/com/android/volley/RetryPolicy.java b/core/src/main/java/com/android/volley/RetryPolicy.java
new file mode 100644
index 0000000..3ef26de
--- /dev/null
+++ b/core/src/main/java/com/android/volley/RetryPolicy.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.volley;
+
+/**
+ * Retry policy for a request.
+ *
+ * <p>A retry policy can control two parameters:
+ *
+ * <ul>
+ * <li>The number of tries. This can be a simple counter or more complex logic based on the type
+ * of error passed to {@link #retry(VolleyError)}, although {@link #getCurrentRetryCount()}
+ * should always return the current retry count for logging purposes.
+ * <li>The request timeout for each try, via {@link #getCurrentTimeout()}. In the common case that
+ * a request times out before the response has been received from the server, retrying again
+ * with a longer timeout can increase the likelihood of success (at the expense of causing the
+ * user to wait longer, especially if the request still fails).
+ * </ul>
+ *
+ * <p>Note that currently, retries triggered by a retry policy are attempted immediately in sequence
+ * with no delay between them (although the time between tries may increase if the requests are
+ * timing out and {@link #getCurrentTimeout()} is returning increasing values).
+ *
+ * <p>By default, Volley uses {@link DefaultRetryPolicy}.
+ */
+public interface RetryPolicy {
+
+ /** Returns the current timeout (used for logging). */
+ int getCurrentTimeout();
+
+ /** Returns the current retry count (used for logging). */
+ int getCurrentRetryCount();
+
+ /**
+ * Prepares for the next retry by applying a backoff to the timeout.
+ *
+ * @param error The error code of the last attempt.
+ * @throws VolleyError In the event that the retry could not be performed (for example if we ran
+ * out of attempts), the passed in error is thrown.
+ */
+ void retry(VolleyError error) throws VolleyError;
+}