|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.infinispan.container.FIFODataContainer
public class FIFODataContainer
A container that maintains order of entries based on when they were placed in the container. Iterators obtained from this container maintain this order.
This container offers constant-time operation for all public API methods. This is implemented using a set of lockable segments, each of which is a hash table, not unlike the JDK'sConcurrentHashMap
with the exception that each entry is also linked.
Links are maintained using techniques inspired by H. Sundell and P. Tsigas' 2008 paper,
Lock Free Deques and Doubly Linked Lists,
M. Michael's 2002 paper, High Performance Dynamic Lock-Free Hash Tables and List-Based Sets,
and Java6's ConcurrentSkipListMap.
Nested Class Summary | |
---|---|
protected class |
FIFODataContainer.KeyIterator
|
protected class |
FIFODataContainer.KeySet
|
protected class |
FIFODataContainer.LinkedIterator
|
protected class |
FIFODataContainer.ValueIterator
|
Constructor Summary | |
---|---|
FIFODataContainer()
|
Method Summary | |
---|---|
void |
clear()
Removes all entries in the container |
boolean |
containsKey(Object k)
Tests whether an entry exists in the container |
InternalCacheEntry |
get(Object k)
Retrieves a cached entry |
protected void |
initLinks()
Initializes links to an empty container |
Iterator<InternalCacheEntry> |
iterator()
|
Set<Object> |
keySet()
|
protected void |
linkAtEnd(org.infinispan.container.FIFODataContainer.LinkedEntry le)
|
void |
purgeExpired()
Purges entries that have passed their expiry time |
void |
put(Object k,
Object v,
long lifespan,
long maxIdle)
Puts an entry in the cache along with a lifespan and a maxIdle time |
InternalCacheEntry |
remove(Object k)
Removes an entry from the cache |
int |
size()
|
protected void |
unlink(org.infinispan.container.FIFODataContainer.LinkedEntry le)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public FIFODataContainer()
Method Detail |
---|
protected final void initLinks()
protected final void unlink(org.infinispan.container.FIFODataContainer.LinkedEntry le)
protected final void linkAtEnd(org.infinispan.container.FIFODataContainer.LinkedEntry le)
public InternalCacheEntry get(Object k)
DataContainer
get
in interface DataContainer
k
- key under which entry is stored
public void put(Object k, Object v, long lifespan, long maxIdle)
DataContainer
put
in interface DataContainer
k
- key under which to store entryv
- value to storelifespan
- lifespan in milliseconds. -1 means immortal.maxIdle
- max idle time for which to store entry. -1 means forever.public boolean containsKey(Object k)
DataContainer
containsKey
in interface DataContainer
k
- key to test
public InternalCacheEntry remove(Object k)
DataContainer
remove
in interface DataContainer
k
- key to remove
public int size()
size
in interface DataContainer
public void clear()
DataContainer
clear
in interface DataContainer
public Set<Object> keySet()
keySet
in interface DataContainer
public void purgeExpired()
DataContainer
purgeExpired
in interface DataContainer
public Iterator<InternalCacheEntry> iterator()
iterator
in interface Iterable<InternalCacheEntry>
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |