org.h2.store
Class PageFreeList

java.lang.Object
  extended by org.h2.util.CacheObject
      extended by org.h2.store.Page
          extended by org.h2.store.PageFreeList
All Implemented Interfaces:
java.lang.Comparable<CacheObject>

public class PageFreeList
extends Page

The list of free pages of a page store. The format of a free list trunk page is:


Field Summary
 
Fields inherited from class org.h2.store.Page
changeCount, FLAG_LAST, TYPE_BTREE_LEAF, TYPE_BTREE_NODE, TYPE_DATA_LEAF, TYPE_DATA_NODE, TYPE_DATA_OVERFLOW, TYPE_EMPTY, TYPE_FREE_LIST, TYPE_STREAM_DATA, TYPE_STREAM_TRUNK
 
Fields inherited from class org.h2.util.CacheObject
cacheChained, cacheNext, cachePrevious
 
Method Summary
 boolean canMove()
          If this page can be moved.
 boolean canRemove()
          Check if the object can be removed from the cache.
 int getMemory()
          Get the estimated memory size.
static int getPagesAddressed(int pageSize)
          Get the number of pages that can fit in a free list.
 void moveTo(Session session, int newPos)
          Copy the data to a new location, change the parent to point to the new location, and free up the current page.
 java.lang.String toString()
           
 void write()
          Write the page.
 
Methods inherited from class org.h2.store.Page
add, insert, insert, insert, remove, remove, remove
 
Methods inherited from class org.h2.util.CacheObject
compareTo, getPos, isChanged, setChanged, setPos
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

write

public void write()
Description copied from class: Page
Write the page.

Specified by:
write in class Page

getPagesAddressed

public static int getPagesAddressed(int pageSize)
Get the number of pages that can fit in a free list.

Parameters:
pageSize - the page size
Returns:
the number of pages

getMemory

public int getMemory()
Get the estimated memory size.

Specified by:
getMemory in class CacheObject
Returns:
number of double words (4 bytes)

moveTo

public void moveTo(Session session,
                   int newPos)
Description copied from class: Page
Copy the data to a new location, change the parent to point to the new location, and free up the current page.

Specified by:
moveTo in class Page
Parameters:
session - the session
newPos - the new position

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

canRemove

public boolean canRemove()
Description copied from class: CacheObject
Check if the object can be removed from the cache. For example pinned objects can not be removed.

Specified by:
canRemove in class CacheObject
Returns:
true if it can be removed

canMove

public boolean canMove()
Description copied from class: Page
If this page can be moved. Transaction log and free-list pages can not.

Overrides:
canMove in class Page
Returns:
true if moving is allowed