net.metanotion.io.block
Class FreeListBlock

java.lang.Object
  extended by net.metanotion.io.block.FreeListBlock

 class FreeListBlock
extends Object

On-disk format:

    Magic number (long)
    next freelist block page (unsigned int)
    size (unsigned int)
    that many free pages (unsigned ints)
Always fits on one page. Free page format:
    Magic number (long)


Field Summary
 int page
           
 
Constructor Summary
FreeListBlock(RandomAccessInterface file, int startPage)
           
 
Method Summary
 void addPage(int freePage)
          Adds free page and writes new len to disk
 boolean flbck(boolean fix)
          Recursive.
 int getNextPage()
           
static void initPage(RandomAccessInterface file, int page)
           
 boolean isEmpty()
           
 boolean isFull()
           
 void setNextPage(int nxt)
          Set and write the next page only
 int takePage()
          Takes next page and writes new len to disk
 String toString()
           
 void writeBlock()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

page

public final int page
Constructor Detail

FreeListBlock

public FreeListBlock(RandomAccessInterface file,
                     int startPage)
              throws IOException
Throws:
IOException
Method Detail

writeBlock

public void writeBlock()
                throws IOException
Throws:
IOException

getNextPage

public int getNextPage()

setNextPage

public void setNextPage(int nxt)
                 throws IOException
Set and write the next page only

Throws:
IOException

isEmpty

public boolean isEmpty()

isFull

public boolean isFull()

addPage

public void addPage(int freePage)
             throws IOException
Adds free page and writes new len to disk

Throws:
IllegalStateException - if full
IOException

takePage

public int takePage()
             throws IOException
Takes next page and writes new len to disk

Throws:
IllegalStateException - if empty
IOException

initPage

public static void initPage(RandomAccessInterface file,
                            int page)
                     throws IOException
Throws:
IOException

flbck

public boolean flbck(boolean fix)
              throws IOException
Recursive.

Throws:
IOException
Since:
0.9.7

toString

public String toString()
Overrides:
toString in class Object