Java Code Examples for com.squareup.okhttp.internal.DiskLruCache#Snapshot

The following examples show how to use com.squareup.okhttp.internal.DiskLruCache#Snapshot . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HttpResponseCache.java    From cordova-android-chromeview with Apache License 2.0 6 votes vote down vote up
@Override public CacheResponse get(URI uri, String requestMethod,
    Map<String, List<String>> requestHeaders) {
  String key = uriToKey(uri);
  DiskLruCache.Snapshot snapshot;
  Entry entry;
  try {
    snapshot = cache.get(key);
    if (snapshot == null) {
      return null;
    }
    entry = new Entry(snapshot.getInputStream(ENTRY_METADATA));
  } catch (IOException e) {
    // Give up because the cache cannot be read.
    return null;
  }

  if (!entry.matches(uri, requestMethod, requestHeaders)) {
    snapshot.close();
    return null;
  }

  return entry.isHttps() ? new EntrySecureCacheResponse(entry, snapshot)
      : new EntryCacheResponse(entry, snapshot);
}
 
Example 2
Source File: GifLoadTask.java    From sctalk with Apache License 2.0 6 votes vote down vote up
private FilterInputStream getFromCache(String url) throws Exception {
    DiskLruCache cache = DiskLruCache.open(CommonUtil.getImageSavePath(), 1, 2, 2*1024*1024);
    cache.flush();
    String key = Util.hash(url);
    final DiskLruCache.Snapshot snapshot;
    try {
        snapshot = cache.get(key);
        if (snapshot == null) {
            return null;
        }
    } catch (IOException e) {
        return null;
    }
    FilterInputStream bodyIn = new FilterInputStream(snapshot.getInputStream(1)) {
        @Override
        public void close() throws IOException {
            snapshot.close();
            super.close();
        }
    };
    return bodyIn;
}
 
Example 3
Source File: HttpResponseCache.java    From bluemix-parking-meter with MIT License 6 votes vote down vote up
@Override public CacheResponse get(URI uri, String requestMethod,
    Map<String, List<String>> requestHeaders) {
  String key = uriToKey(uri);
  DiskLruCache.Snapshot snapshot;
  Entry entry;
  try {
    snapshot = cache.get(key);
    if (snapshot == null) {
      return null;
    }
    entry = new Entry(snapshot.getInputStream(ENTRY_METADATA));
  } catch (IOException e) {
    // Give up because the cache cannot be read.
    return null;
  }

  if (!entry.matches(uri, requestMethod, requestHeaders)) {
    snapshot.close();
    return null;
  }

  return entry.isHttps() ? new EntrySecureCacheResponse(entry, snapshot)
      : new EntryCacheResponse(entry, snapshot);
}
 
Example 4
Source File: HttpResponseCache.java    From phonegap-plugin-loading-spinner with Apache License 2.0 6 votes vote down vote up
/**
 * Handles a conditional request hit by updating the stored cache response
 * with the headers from {@code httpConnection}. The cached response body is
 * not updated. If the stored response has changed since {@code
 * conditionalCacheHit} was returned, this does nothing.
 */
@Override public void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 5
Source File: HttpResponseCache.java    From phonegap-plugin-loading-spinner with Apache License 2.0 6 votes vote down vote up
@Override public CacheResponse get(URI uri, String requestMethod,
    Map<String, List<String>> requestHeaders) {
  String key = uriToKey(uri);
  DiskLruCache.Snapshot snapshot;
  Entry entry;
  try {
    snapshot = cache.get(key);
    if (snapshot == null) {
      return null;
    }
    entry = new Entry(snapshot.getInputStream(ENTRY_METADATA));
  } catch (IOException e) {
    // Give up because the cache cannot be read.
    return null;
  }

  if (!entry.matches(uri, requestMethod, requestHeaders)) {
    snapshot.close();
    return null;
  }

  return entry.isHttps() ? new EntrySecureCacheResponse(entry, snapshot)
      : new EntryCacheResponse(entry, snapshot);
}
 
Example 6
Source File: HttpResponseCache.java    From wildfly-samples with MIT License 6 votes vote down vote up
@Override public CacheResponse get(URI uri, String requestMethod,
    Map<String, List<String>> requestHeaders) {
  String key = uriToKey(uri);
  DiskLruCache.Snapshot snapshot;
  Entry entry;
  try {
    snapshot = cache.get(key);
    if (snapshot == null) {
      return null;
    }
    entry = new Entry(snapshot.getInputStream(ENTRY_METADATA));
  } catch (IOException e) {
    // Give up because the cache cannot be read.
    return null;
  }

  if (!entry.matches(uri, requestMethod, requestHeaders)) {
    snapshot.close();
    return null;
  }

  return entry.isHttps() ? new EntrySecureCacheResponse(entry, snapshot)
      : new EntryCacheResponse(entry, snapshot);
}
 
Example 7
Source File: HttpResponseCache.java    From cordova-android-chromeview with Apache License 2.0 6 votes vote down vote up
private void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 8
Source File: HttpResponseCache.java    From cordova-android-chromeview with Apache License 2.0 6 votes vote down vote up
/**
 * Handles a conditional request hit by updating the stored cache response
 * with the headers from {@code httpConnection}. The cached response body is
 * not updated. If the stored response has changed since {@code
 * conditionalCacheHit} was returned, this does nothing.
 */
@Override public void update(CacheResponse conditionalCacheHit, HttpURLConnection httpConnection)
    throws IOException {
  HttpEngine httpEngine = getHttpEngine(httpConnection);
  URI uri = httpEngine.getUri();
  ResponseHeaders response = httpEngine.getResponseHeaders();
  RawHeaders varyHeaders =
      httpEngine.getRequestHeaders().getHeaders().getAll(response.getVaryFields());
  Entry entry = new Entry(uri, varyHeaders, httpConnection);
  DiskLruCache.Snapshot snapshot = (conditionalCacheHit instanceof EntryCacheResponse)
      ? ((EntryCacheResponse) conditionalCacheHit).snapshot
      : ((EntrySecureCacheResponse) conditionalCacheHit).snapshot;
  DiskLruCache.Editor editor = null;
  try {
    editor = snapshot.edit(); // returns null if snapshot is not current
    if (editor != null) {
      entry.writeTo(editor);
      editor.commit();
    }
  } catch (IOException e) {
    abortQuietly(editor);
  }
}
 
Example 9
Source File: HttpResponseCache.java    From phonegap-plugin-loading-spinner with Apache License 2.0 5 votes vote down vote up
/**
 * Returns an input stream that reads the body of a snapshot, closing the
 * snapshot when the stream is closed.
 */
private static InputStream newBodyInputStream(final DiskLruCache.Snapshot snapshot) {
  return new FilterInputStream(snapshot.getInputStream(ENTRY_BODY)) {
    @Override public void close() throws IOException {
      snapshot.close();
      super.close();
    }
  };
}
 
Example 10
Source File: HttpResponseCache.java    From android-discourse with Apache License 2.0 5 votes vote down vote up
/**
 * Returns an input stream that reads the body of a snapshot, closing the
 * snapshot when the stream is closed.
 */
private static InputStream newBodyInputStream(final DiskLruCache.Snapshot snapshot) {
    return new FilterInputStream(snapshot.getInputStream(ENTRY_BODY)) {
        @Override
        public void close() throws IOException {
            snapshot.close();
            super.close();
        }
    };
}
 
Example 11
Source File: HttpResponseCache.java    From reader with MIT License 5 votes vote down vote up
/**
 * Returns an input stream that reads the body of a snapshot, closing the
 * snapshot when the stream is closed.
 */
private static InputStream newBodyInputStream(final DiskLruCache.Snapshot snapshot) {
  return new FilterInputStream(snapshot.getInputStream(ENTRY_BODY)) {
    @Override public void close() throws IOException {
      snapshot.close();
      super.close();
    }
  };
}
 
Example 12
Source File: HttpResponseCache.java    From cordova-android-chromeview with Apache License 2.0 5 votes vote down vote up
/**
 * Returns an input stream that reads the body of a snapshot, closing the
 * snapshot when the stream is closed.
 */
private static InputStream newBodyInputStream(final DiskLruCache.Snapshot snapshot) {
  return new FilterInputStream(snapshot.getInputStream(ENTRY_BODY)) {
    @Override public void close() throws IOException {
      snapshot.close();
      super.close();
    }
  };
}
 
Example 13
Source File: HttpResponseCache.java    From cordova-android-chromeview with Apache License 2.0 5 votes vote down vote up
/**
 * Returns an input stream that reads the body of a snapshot, closing the
 * snapshot when the stream is closed.
 */
private static InputStream newBodyInputStream(final DiskLruCache.Snapshot snapshot) {
  return new FilterInputStream(snapshot.getInputStream(ENTRY_BODY)) {
    @Override public void close() throws IOException {
      snapshot.close();
      super.close();
    }
  };
}
 
Example 14
Source File: HttpResponseCache.java    From reader with MIT License 5 votes vote down vote up
/**
 * Returns an input stream that reads the body of a snapshot, closing the
 * snapshot when the stream is closed.
 */
private static InputStream newBodyInputStream(final DiskLruCache.Snapshot snapshot) {
  return new FilterInputStream(snapshot.getInputStream(ENTRY_BODY)) {
    @Override public void close() throws IOException {
      snapshot.close();
      super.close();
    }
  };
}
 
Example 15
Source File: HttpResponseCache.java    From reader with MIT License 4 votes vote down vote up
public EntryCacheResponse(Entry entry, DiskLruCache.Snapshot snapshot) {
  this.entry = entry;
  this.snapshot = snapshot;
  this.in = newBodyInputStream(snapshot);
}
 
Example 16
Source File: HttpResponseCache.java    From crosswalk-cordova-android with Apache License 2.0 4 votes vote down vote up
public EntrySecureCacheResponse(Entry entry, DiskLruCache.Snapshot snapshot) {
  this.entry = entry;
  this.snapshot = snapshot;
  this.in = newBodyInputStream(snapshot);
}
 
Example 17
Source File: HttpResponseCache.java    From L.TileLayer.Cordova with MIT License 4 votes vote down vote up
public EntrySecureCacheResponse(Entry entry, DiskLruCache.Snapshot snapshot) {
  this.entry = entry;
  this.snapshot = snapshot;
  this.in = newBodyInputStream(snapshot);
}
 
Example 18
Source File: HttpResponseCache.java    From reader with MIT License 4 votes vote down vote up
public EntryCacheResponse(Entry entry, DiskLruCache.Snapshot snapshot) {
  this.entry = entry;
  this.snapshot = snapshot;
  this.in = newBodyInputStream(snapshot);
}
 
Example 19
Source File: HttpResponseCache.java    From cordova-android-chromeview with Apache License 2.0 4 votes vote down vote up
public EntryCacheResponse(Entry entry, DiskLruCache.Snapshot snapshot) {
  this.entry = entry;
  this.snapshot = snapshot;
  this.in = newBodyInputStream(snapshot);
}
 
Example 20
Source File: HttpResponseCache.java    From cordova-amazon-fireos with Apache License 2.0 4 votes vote down vote up
public EntrySecureCacheResponse(Entry entry, DiskLruCache.Snapshot snapshot) {
  this.entry = entry;
  this.snapshot = snapshot;
  this.in = newBodyInputStream(snapshot);
}