org.infinispan.container
Class SpinLockBasedLRUDataContainer

java.lang.Object
  extended by org.infinispan.container.SpinLockBasedFIFODataContainer
      extended by org.infinispan.container.SpinLockBasedLRUDataContainer
All Implemented Interfaces:
Iterable<InternalCacheEntry>, DataContainer

@ThreadSafe
public class SpinLockBasedLRUDataContainer
extends SpinLockBasedFIFODataContainer

A data container that exposes an iterator that is ordered based on least recently used (visited) entries first.

This builds on the SpinLockBasedFIFODataContainer by calling updateLinks(org.infinispan.container.SpinLockBasedFIFODataContainer.LinkedEntry) even for get(Object) invocations to make sure ordering is intact, as per LRU.

Since:
4.0
Author:
Manik Surtani

Nested Class Summary
 
Nested classes/interfaces inherited from class org.infinispan.container.SpinLockBasedFIFODataContainer
SpinLockBasedFIFODataContainer.Aux, SpinLockBasedFIFODataContainer.EntryIterator, SpinLockBasedFIFODataContainer.EntrySet, SpinLockBasedFIFODataContainer.ImmutableEntryIterator, SpinLockBasedFIFODataContainer.KeyIterator, SpinLockBasedFIFODataContainer.KeySet, SpinLockBasedFIFODataContainer.LinkedEntry, SpinLockBasedFIFODataContainer.LinkedIterator, SpinLockBasedFIFODataContainer.SpinLock, SpinLockBasedFIFODataContainer.ValueIterator, SpinLockBasedFIFODataContainer.Values
 
Constructor Summary
SpinLockBasedLRUDataContainer()
           
 
Method Summary
 InternalCacheEntry get(Object k)
          Retrieves a cached entry
protected  void updateLinks(SpinLockBasedFIFODataContainer.LinkedEntry l)
          Updates links on this entry, moving it to the end of the linked list
 
Methods inherited from class org.infinispan.container.SpinLockBasedFIFODataContainer
clear, containsKey, entrySet, initLinks, iterator, keySet, purgeExpired, put, remove, size, values
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpinLockBasedLRUDataContainer

public SpinLockBasedLRUDataContainer()
Method Detail

get

public InternalCacheEntry get(Object k)
Description copied from interface: DataContainer
Retrieves a cached entry

Specified by:
get in interface DataContainer
Overrides:
get in class SpinLockBasedFIFODataContainer
Parameters:
k - key under which entry is stored
Returns:
entry, if it exists and has not expired, or null if not

updateLinks

protected final void updateLinks(SpinLockBasedFIFODataContainer.LinkedEntry l)
Updates links on this entry, moving it to the end of the linked list

Parameters:
l - linked entry to update

Google Analytics

Copyright © 2009 JBoss, a division of Red Hat. All Rights Reserved.