|
||||||||||
| 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 DataContainerk - key under which entry is stored
public void put(Object k,
Object v,
long lifespan,
long maxIdle)
DataContainer
put in interface DataContainerk - 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 DataContainerk - key to test
public InternalCacheEntry remove(Object k)
DataContainer
remove in interface DataContainerk - key to remove
public int size()
size in interface DataContainerpublic void clear()
DataContainer
clear in interface DataContainerpublic Set<Object> keySet()
keySet in interface DataContainerpublic void purgeExpired()
DataContainer
purgeExpired in interface DataContainerpublic Iterator<InternalCacheEntry> iterator()
iterator in interface Iterable<InternalCacheEntry>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||