Package net.metanotion.io.block
Class FreeListBlock
- java.lang.Object
-
- 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
Fields Modifier and Type Field Description int
page
-
Constructor Summary
Constructors Constructor Description FreeListBlock(RandomAccessInterface file, int startPage)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPage(int freePage)
Adds free page and writes new len to diskboolean
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 onlyint
takePage()
Takes next page and writes new len to diskString
toString()
void
writeBlock()
-
-
-
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 fullIOException
-
takePage
public int takePage() throws IOException
Takes next page and writes new len to disk- Throws:
IllegalStateException
- if emptyIOException
-
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
-
-