@ThreadSafe public class RemoteStore<K,V> extends Object implements AdvancedLoadWriteStore<K,V>, FlagAffectedStore<K,V>
RemoteStoreConfiguration,
Hotrod Java ClientAdvancedCacheLoader.CacheLoaderTask<K,V>, AdvancedCacheLoader.TaskContextAdvancedCacheWriter.PurgeListener<K>| Modifier and Type | Field and Description |
|---|---|
protected InitializationContext |
ctx |
| Constructor and Description |
|---|
RemoteStore() |
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Removes all the data from the storage.
|
boolean |
contains(Object key)
Returns true if the storage contains an entry associated with the given key.
|
boolean |
delete(Object key) |
RemoteStoreConfiguration |
getConfiguration() |
org.infinispan.client.hotrod.RemoteCache<Object,Object> |
getRemoteCache() |
void |
init(InitializationContext ctx)
Used to initialize a cache loader.
|
MarshalledEntry |
load(Object key)
Fetches an entry from the storage.
|
void |
process(KeyFilter filter,
AdvancedCacheLoader.CacheLoaderTask task,
Executor executor,
boolean fetchValue,
boolean fetchMetadata)
Iterates in parallel over the entries in the storage using the threads from the executor pool.
|
void |
purge(Executor threadPool,
AdvancedCacheWriter.PurgeListener task)
Using the thread in the pool, removed all the expired data from the persistence storage.
|
void |
setInternalCacheEntryFactory(InternalEntryFactory iceFactory) |
boolean |
shouldWrite(long commandFlags) |
int |
size()
Returns the number of elements in the store.
|
void |
start()
Invoked on component start
|
void |
stop()
Invoked on component stop
|
void |
write(MarshalledEntry entry)
Persists the entry to the storage.
|
void |
writeBatch(Iterable<MarshalledEntry<? extends K,? extends V>> marshalledEntries)
Persist all provided entries to the store in a single batch update.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdeleteBatchprotected InitializationContext ctx
public void init(InitializationContext ctx)
CacheLoaderPersistenceManager
when setting up cache loaders.init in interface CacheLoader<K,V>init in interface CacheWriter<K,V>public void start()
throws PersistenceException
Lifecyclestart in interface LifecyclePersistenceExceptionpublic void stop()
throws PersistenceException
Lifecyclestop in interface LifecyclePersistenceExceptionpublic MarshalledEntry load(Object key) throws PersistenceException
CacheLoaderMarshalledEntry needs to be created here, InitializationContext.getMarshalledEntryFactory() and InitializationContext.getByteBufferFactory() should be used.load in interface CacheLoader<K,V>PersistenceException - in case of an error, e.g. communicating with the external storagepublic boolean contains(Object key) throws PersistenceException
CacheLoadercontains in interface CacheLoader<K,V>PersistenceException - in case of an error, e.g. communicating with the external storagepublic void process(KeyFilter filter, AdvancedCacheLoader.CacheLoaderTask task, Executor executor, boolean fetchValue, boolean fetchMetadata)
AdvancedCacheLoaderCacheLoaderTask#processEntry(MarshalledEntry, TaskContext) is
invoked. Before passing an entry to the callback task, the entry should be validated against the filter.
Implementors should build an AdvancedCacheLoader.TaskContext instance (implementation) that is fed to the AdvancedCacheLoader.CacheLoaderTask on every invocation. The AdvancedCacheLoader.CacheLoaderTask might invoke AdvancedCacheLoader.TaskContext.stop() at any time, so implementors of this method
should verify TaskContext's state for early termination of iteration. The method should only return once the
iteration is complete or as soon as possible in the case TaskContext.stop() is invoked.process in interface AdvancedCacheLoader<K,V>filter - to validate which entries should be feed into the task. Might be null.task - callback to be invoked in parallel for each stored entry that passes the filter checkexecutor - an external thread pool to be used for parallel iterationfetchValue - whether or not to fetch the value from the persistent store. E.g. if the iteration is
intended only over the key set, no point fetching the values from the persistent store as
wellfetchMetadata - whether or not to fetch the metadata from the persistent store. E.g. if the iteration is
intended only ove the key set, then no pint fetching the metadata from the persistent store
as wellpublic int size()
AdvancedCacheLoadersize in interface AdvancedCacheLoader<K,V>public void purge(Executor threadPool, AdvancedCacheWriter.PurgeListener task)
AdvancedCacheWriterpurge in interface AdvancedCacheWriter<K,V>public void write(MarshalledEntry entry) throws PersistenceException
CacheWriterwrite in interface CacheWriter<K,V>PersistenceException - in case of an error, e.g. communicating with the external storageMarshalledEntrypublic void writeBatch(Iterable<MarshalledEntry<? extends K,? extends V>> marshalledEntries)
CacheWriterCacheWriter.write(MarshalledEntry).
As the execution order of MarshalledEntries is not guaranteed, you should ensure that only a single entry exists
in the Collection for a given key.writeBatch in interface CacheWriter<K,V>marshalledEntries - a Collection of MarshalledEntry to be written to the store.public void clear()
throws PersistenceException
AdvancedCacheWriterclear in interface AdvancedCacheWriter<K,V>PersistenceException - in case of an error, e.g. communicating with the external storagepublic boolean delete(Object key) throws PersistenceException
delete in interface CacheWriter<K,V>PersistenceException - in case of an error, e.g. communicating with the external storagepublic void setInternalCacheEntryFactory(InternalEntryFactory iceFactory)
public RemoteStoreConfiguration getConfiguration()
public boolean shouldWrite(long commandFlags)
shouldWrite in interface FlagAffectedStore<K,V>Copyright © 2018 JBoss, a division of Red Hat. All rights reserved.