summaryrefslogtreecommitdiffstats
path: root/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/SyncResponse.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/SyncResponse.java')
-rw-r--r--mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/SyncResponse.java157
1 files changed, 0 insertions, 157 deletions
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/SyncResponse.java b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/SyncResponse.java
deleted file mode 100644
index 177d7aaba..000000000
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/SyncResponse.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.gecko.sync.net;
-
-import android.support.annotation.Nullable;
-
-import org.mozilla.gecko.sync.Utils;
-
-import ch.boye.httpclientandroidlib.HttpResponse;
-
-public class SyncResponse extends MozResponse {
- public static final String X_WEAVE_BACKOFF = "x-weave-backoff";
- public static final String X_BACKOFF = "x-backoff";
- public static final String X_LAST_MODIFIED = "x-last-modified";
- public static final String X_WEAVE_TIMESTAMP = "x-weave-timestamp";
- public static final String X_WEAVE_RECORDS = "x-weave-records";
- public static final String X_WEAVE_QUOTA_REMAINING = "x-weave-quota-remaining";
- public static final String X_WEAVE_ALERT = "x-weave-alert";
- public static final String X_WEAVE_NEXT_OFFSET = "x-weave-next-offset";
-
- public SyncResponse(HttpResponse res) {
- super(res);
- }
-
- /**
- * @return A number of seconds, or -1 if the 'X-Weave-Backoff' header was not
- * present.
- */
- public int weaveBackoffInSeconds() throws NumberFormatException {
- return this.getIntegerHeader(X_WEAVE_BACKOFF);
- }
-
- /**
- * @return A number of seconds, or -1 if the 'X-Backoff' header was not
- * present.
- */
- public int xBackoffInSeconds() throws NumberFormatException {
- return this.getIntegerHeader(X_BACKOFF);
- }
-
- /**
- * Extract a number of seconds, or -1 if none of the specified headers were present.
- *
- * @param includeRetryAfter
- * if <code>true</code>, the Retry-After header is excluded. This is
- * useful for processing non-error responses where a Retry-After
- * header would be unexpected.
- * @return the maximum of the three possible backoff headers, in seconds.
- */
- public int totalBackoffInSeconds(boolean includeRetryAfter) {
- int retryAfterInSeconds = -1;
- if (includeRetryAfter) {
- try {
- retryAfterInSeconds = retryAfterInSeconds();
- } catch (NumberFormatException e) {
- }
- }
-
- int weaveBackoffInSeconds = -1;
- try {
- weaveBackoffInSeconds = weaveBackoffInSeconds();
- } catch (NumberFormatException e) {
- }
-
- int backoffInSeconds = -1;
- try {
- backoffInSeconds = xBackoffInSeconds();
- } catch (NumberFormatException e) {
- }
-
- int totalBackoff = Math.max(retryAfterInSeconds, Math.max(backoffInSeconds, weaveBackoffInSeconds));
- if (totalBackoff < 0) {
- return -1;
- } else {
- return totalBackoff;
- }
- }
-
- /**
- * @return A number of milliseconds, or -1 if neither the 'Retry-After',
- * 'X-Backoff', or 'X-Weave-Backoff' header were present.
- */
- public long totalBackoffInMilliseconds() {
- long totalBackoff = totalBackoffInSeconds(true);
- if (totalBackoff < 0) {
- return -1;
- } else {
- return 1000 * totalBackoff;
- }
- }
-
- public long normalizedWeaveTimestamp() {
- return normalizedTimestampForHeader(X_WEAVE_TIMESTAMP);
- }
-
- /**
- * Timestamps returned from a Sync server are decimal numbers of seconds,
- * e.g., 1323393518.04.
- *
- * We want milliseconds since epoch.
- *
- * @return milliseconds since the epoch, as a long, or -1 if the header
- * was missing or invalid.
- */
- public long normalizedTimestampForHeader(String header) {
- if (!this.hasHeader(header)) {
- return -1;
- }
-
- return Utils.decimalSecondsToMilliseconds(
- this.response.getFirstHeader(header).getValue()
- );
- }
-
- public int weaveRecords() throws NumberFormatException {
- return this.getIntegerHeader(X_WEAVE_RECORDS);
- }
-
- public int weaveQuotaRemaining() throws NumberFormatException {
- return this.getIntegerHeader(X_WEAVE_QUOTA_REMAINING);
- }
-
- public String weaveAlert() {
- return this.getNonMissingHeader(X_WEAVE_ALERT);
- }
-
- /**
- * This header may be sent back with multi-record responses where the request included a limit parameter.
- * Its presence indicates that the number of available records exceeded the given limit.
- * The value from this header can be passed back in the offset parameter to retrieve additional records.
- * The value of this header will always be a string of characters from the urlsafe-base64 alphabet.
- * The specific contents of the string are an implementation detail of the server,
- * so clients should treat it as an opaque token.
- *
- * @return the offset header
- */
- public String weaveOffset() {
- return this.getNonMissingHeader(X_WEAVE_NEXT_OFFSET);
- }
-
- /**
- * This header gives the last-modified time of the target resource as seen during processing of the request,
- * and will be included in all success responses (200, 201, 204).
- * When given in response to a write request, this will be equal to the server’s current time and
- * to the new last-modified time of any BSOs created or changed by the request.
- * It is similar to the standard HTTP Last-Modified header,
- * but the value is a decimal timestamp rather than a HTTP-format date.
- *
- * @return the last modified header
- */
- @Nullable
- public String lastModified() {
- return this.getNonMissingHeader(X_LAST_MODIFIED);
- }
-}