org.h2.util
Class CacheObject

java.lang.Object
  extended by org.h2.util.CacheObject
All Implemented Interfaces:
java.lang.Comparable<CacheObject>
Direct Known Subclasses:
CacheHead, Page

public abstract class CacheObject
extends java.lang.Object
implements java.lang.Comparable<CacheObject>

The base object for all cached objects.


Field Summary
 CacheObject cacheChained
          The next element in the hash chain.
 CacheObject cacheNext
          The next element in the LRU linked list.
 CacheObject cachePrevious
          The previous element in the LRU linked list.
 
Constructor Summary
CacheObject()
           
 
Method Summary
abstract  boolean canRemove()
          Check if the object can be removed from the cache.
 int compareTo(CacheObject other)
           
abstract  int getMemory()
          Get the estimated used memory.
 int getPos()
           
 boolean isChanged()
          Check if this cache object has been changed and thus needs to be written back to the storage.
 void setChanged(boolean b)
           
 void setPos(int pos)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cachePrevious

public CacheObject cachePrevious
The previous element in the LRU linked list. If the previous element is the head, then this element is the most recently used object.


cacheNext

public CacheObject cacheNext
The next element in the LRU linked list. If the next element is the head, then this element is the least recently used object.


cacheChained

public CacheObject cacheChained
The next element in the hash chain.

Constructor Detail

CacheObject

public CacheObject()
Method Detail

canRemove

public abstract boolean canRemove()
Check if the object can be removed from the cache. For example pinned objects can not be removed.

Returns:
true if it can be removed

getMemory

public abstract int getMemory()
Get the estimated used memory.

Returns:
number of words (one word is 4 bytes)

setPos

public void setPos(int pos)

getPos

public int getPos()

isChanged

public boolean isChanged()
Check if this cache object has been changed and thus needs to be written back to the storage.

Returns:
if it has been changed

setChanged

public void setChanged(boolean b)

compareTo

public int compareTo(CacheObject other)
Specified by:
compareTo in interface java.lang.Comparable<CacheObject>