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 intpage -
Constructor Summary
Constructors Constructor Description FreeListBlock(RandomAccessInterface file, int startPage) -
Method Summary
Modifier and Type Method Description voidaddPage(int freePage)Adds free page and writes new len to diskbooleanflbck(boolean fix)Recursive.intgetNextPage()static voidinitPage(RandomAccessInterface file, int page)booleanisEmpty()booleanisFull()voidsetNextPage(int nxt)Set and write the next page onlyinttakePage()Takes next page and writes new len to diskStringtoString()voidwriteBlock()
-
Field Details
-
page
public final int page
-
-
Constructor Details
-
FreeListBlock
- Throws:
IOException
-
-
Method Details
-
writeBlock
- Throws:
IOException
-
getNextPage
public int getNextPage() -
setNextPage
Set and write the next page only- Throws:
IOException
-
isEmpty
public boolean isEmpty() -
isFull
public boolean isFull() -
addPage
Adds free page and writes new len to disk- Throws:
IllegalStateException- if fullIOException
-
takePage
Takes next page and writes new len to disk- Throws:
IllegalStateException- if emptyIOException
-
initPage
- Throws:
IOException
-
flbck
Recursive.- Throws:
IOException- Since:
- 0.9.7
-
toString
-