net.metanotion.io.block.index
Class BSkipLevels

java.lang.Object
  extended by net.metanotion.util.skiplist.SkipLevels
      extended by net.metanotion.io.block.index.BSkipLevels

public class BSkipLevels
extends SkipLevels

On-disk format:

    Magic number (long)
    max height (unsigned short)
    non-null height (unsigned short)
    span page (unsigned int)
    height number of level pages (unsigned ints)
Always fits on one page.


Field Summary
 BlockFile bf
           
(package private) static int HEADER_LEN
           
 int levelPage
           
 int spanPage
           
 
Fields inherited from class net.metanotion.util.skiplist.SkipLevels
bottom, levels, MAX_SIZE
 
Constructor Summary
BSkipLevels(BlockFile bf, int levelPage, BSkipList bsl)
           
 
Method Summary
 boolean blvlck(boolean fix)
          Run an integrity check on the skiplevels from the first, or just fix it if fix == true.
 boolean blvlck(boolean fix, int width, SkipLevels[] prevLevels)
           
 void flush()
           
static void init(BlockFile bf, int page, int spanPage, int maxHeight)
           
 void killInstance()
           
 SkipLevels newInstance(int levels, SkipSpan ss, SkipList sl)
           
 String toString()
           
 
Methods inherited from class net.metanotion.util.skiplist.SkipLevels
get, getEnd, getSpan, key, print, printAll, put, remove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

HEADER_LEN

static final int HEADER_LEN
See Also:
Constant Field Values

levelPage

public final int levelPage

spanPage

public final int spanPage

bf

public final BlockFile bf
Constructor Detail

BSkipLevels

public BSkipLevels(BlockFile bf,
                   int levelPage,
                   BSkipList bsl)
            throws IOException
Throws:
IOException
Method Detail

init

public static void init(BlockFile bf,
                        int page,
                        int spanPage,
                        int maxHeight)
                 throws IOException
Throws:
IOException

flush

public void flush()
Overrides:
flush in class SkipLevels

killInstance

public void killInstance()
Overrides:
killInstance in class SkipLevels

newInstance

public SkipLevels newInstance(int levels,
                              SkipSpan ss,
                              SkipList sl)
Overrides:
newInstance in class SkipLevels

blvlck

public boolean blvlck(boolean fix)
Run an integrity check on the skiplevels from the first, or just fix it if fix == true. Only call from the first level.

Overrides:
blvlck in class SkipLevels
Returns:
true if the levels were modified.

blvlck

public boolean blvlck(boolean fix,
                      int width,
                      SkipLevels[] prevLevels)
Overrides:
blvlck in class SkipLevels

toString

public String toString()
Overrides:
toString in class Object