Class AbstractSerializingAsyncCacheStorage<T,CAS>
java.lang.Object
org.apache.hc.client5.http.impl.cache.AbstractSerializingAsyncCacheStorage<T,CAS>
- All Implemented Interfaces:
HttpAsyncCacheStorage
- Direct Known Subclasses:
AbstractBinaryAsyncCacheStorage
public abstract class AbstractSerializingAsyncCacheStorage<T,CAS>
extends Object
implements HttpAsyncCacheStorage
Abstract cache backend for serialized objects capable of CAS (compare-and-swap) updates.
- Since:
- 5.0
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionAbstractSerializingAsyncCacheStorage
(int maxUpdateRetries, HttpCacheEntrySerializer<T> serializer) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
attemptUpdateEntry
(String key, HttpCacheCASOperation casOperation, org.apache.hc.core5.concurrent.ComplexCancellable complexCancellable, AtomicInteger count, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) protected abstract org.apache.hc.core5.concurrent.Cancellable
bulkRestore
(Collection<String> storageKeys, org.apache.hc.core5.concurrent.FutureCallback<Map<String, T>> callback) protected abstract org.apache.hc.core5.concurrent.Cancellable
protected abstract String
digestToStorageKey
(String key) final org.apache.hc.core5.concurrent.Cancellable
getEntries
(Collection<String> keys, org.apache.hc.core5.concurrent.FutureCallback<Map<String, HttpCacheEntry>> callback) Retrieves multiple cache entries stored under the given keys.final org.apache.hc.core5.concurrent.Cancellable
getEntry
(String key, org.apache.hc.core5.concurrent.FutureCallback<HttpCacheEntry> callback) Retrieves the cache entry stored under the given key or null if no entry exists under that key.protected abstract org.apache.hc.core5.concurrent.Cancellable
getForUpdateCAS
(String storageKey, org.apache.hc.core5.concurrent.FutureCallback<CAS> callback) protected abstract T
getStorageObject
(CAS cas) final org.apache.hc.core5.concurrent.Cancellable
putEntry
(String key, HttpCacheEntry entry, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) Store a given cache entry under the given key.final org.apache.hc.core5.concurrent.Cancellable
removeEntry
(String key, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) Deletes/invalidates/removes any cache entries currently stored under the given key.protected abstract org.apache.hc.core5.concurrent.Cancellable
protected abstract org.apache.hc.core5.concurrent.Cancellable
store
(String storageKey, T storageObject, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) protected abstract org.apache.hc.core5.concurrent.Cancellable
updateCAS
(String storageKey, CAS cas, T storageObject, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) final org.apache.hc.core5.concurrent.Cancellable
updateEntry
(String key, HttpCacheCASOperation casOperation, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) Atomically applies the given callback to processChallenge an existing cache entry under a given key.
-
Field Details
-
maxUpdateRetries
private final int maxUpdateRetries -
serializer
-
-
Constructor Details
-
AbstractSerializingAsyncCacheStorage
public AbstractSerializingAsyncCacheStorage(int maxUpdateRetries, HttpCacheEntrySerializer<T> serializer)
-
-
Method Details
-
digestToStorageKey
-
getStorageObject
- Throws:
ResourceIOException
-
store
-
restore
-
getForUpdateCAS
-
updateCAS
-
delete
-
bulkRestore
protected abstract org.apache.hc.core5.concurrent.Cancellable bulkRestore(Collection<String> storageKeys, org.apache.hc.core5.concurrent.FutureCallback<Map<String, T>> callback) -
putEntry
public final org.apache.hc.core5.concurrent.Cancellable putEntry(String key, HttpCacheEntry entry, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) Description copied from interface:HttpAsyncCacheStorage
Store a given cache entry under the given key.- Specified by:
putEntry
in interfaceHttpAsyncCacheStorage
- Parameters:
key
- where in the cache to store the entryentry
- cached response to storecallback
- result callback
-
getEntry
public final org.apache.hc.core5.concurrent.Cancellable getEntry(String key, org.apache.hc.core5.concurrent.FutureCallback<HttpCacheEntry> callback) Description copied from interface:HttpAsyncCacheStorage
Retrieves the cache entry stored under the given key or null if no entry exists under that key.- Specified by:
getEntry
in interfaceHttpAsyncCacheStorage
- Parameters:
key
- cache keycallback
- result callback- Returns:
- an
HttpCacheEntry
ornull
if no entry exists
-
removeEntry
public final org.apache.hc.core5.concurrent.Cancellable removeEntry(String key, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) Description copied from interface:HttpAsyncCacheStorage
Deletes/invalidates/removes any cache entries currently stored under the given key.- Specified by:
removeEntry
in interfaceHttpAsyncCacheStorage
- Parameters:
key
-callback
- result callback
-
updateEntry
public final org.apache.hc.core5.concurrent.Cancellable updateEntry(String key, HttpCacheCASOperation casOperation, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) Description copied from interface:HttpAsyncCacheStorage
Atomically applies the given callback to processChallenge an existing cache entry under a given key.- Specified by:
updateEntry
in interfaceHttpAsyncCacheStorage
- Parameters:
key
- indicates which entry to modifycasOperation
- the CAS operation to perform.callback
- result callback
-
attemptUpdateEntry
private void attemptUpdateEntry(String key, HttpCacheCASOperation casOperation, org.apache.hc.core5.concurrent.ComplexCancellable complexCancellable, AtomicInteger count, org.apache.hc.core5.concurrent.FutureCallback<Boolean> callback) -
getEntries
public final org.apache.hc.core5.concurrent.Cancellable getEntries(Collection<String> keys, org.apache.hc.core5.concurrent.FutureCallback<Map<String, HttpCacheEntry>> callback) Description copied from interface:HttpAsyncCacheStorage
Retrieves multiple cache entries stored under the given keys. Some implementations may use a single bulk operation to do the retrieval.- Specified by:
getEntries
in interfaceHttpAsyncCacheStorage
- Parameters:
keys
- cache keyscallback
- result callback
-