List of usage examples for org.apache.http.impl.client.cache.memcached MemcachedCacheEntry getHttpCacheEntry
HttpCacheEntry getHttpCacheEntry();
From source file:org.apache.http.impl.client.cache.memcached.MemcachedHttpCacheStorage.java
public HttpCacheEntry getEntry(final String url) throws IOException { final String key = getCacheKey(url); if (key == null) { return null; }/*from w ww .j av a 2s.c o m*/ try { final MemcachedCacheEntry mce = reconstituteEntry(client.get(key)); if (mce == null || !url.equals(mce.getStorageKey())) { return null; } return mce.getHttpCacheEntry(); } catch (final OperationTimeoutException ex) { throw new MemcachedOperationTimeoutException(ex); } }
From source file:org.apache.http.impl.client.cache.memcached.MemcachedHttpCacheStorage.java
public void updateEntry(final String url, final HttpCacheUpdateCallback callback) throws HttpCacheUpdateException, IOException { int numRetries = 0; final String key = getCacheKey(url); if (key == null) { throw new HttpCacheUpdateException("couldn't generate cache key"); }/*from www .j a va 2 s . co m*/ do { try { final CASValue<Object> v = client.gets(key); MemcachedCacheEntry mce = (v == null) ? null : reconstituteEntry(v.getValue()); if (mce != null && (!url.equals(mce.getStorageKey()))) { mce = null; } final HttpCacheEntry existingEntry = (mce == null) ? null : mce.getHttpCacheEntry(); final HttpCacheEntry updatedEntry = callback.update(existingEntry); if (existingEntry == null) { putEntry(url, updatedEntry); return; } else { final byte[] updatedBytes = serializeEntry(url, updatedEntry); final CASResponse casResult = client.cas(key, v.getCas(), updatedBytes); if (casResult != CASResponse.OK) { numRetries++; } else { return; } } } catch (final OperationTimeoutException ex) { throw new MemcachedOperationTimeoutException(ex); } } while (numRetries <= maxUpdateRetries); throw new HttpCacheUpdateException("Failed to update"); }