org.h2.mvstore
Class FreeSpaceBitSet

java.lang.Object
  extended by org.h2.mvstore.FreeSpaceBitSet

public class FreeSpaceBitSet
extends java.lang.Object

A free space bit set.


Constructor Summary
FreeSpaceBitSet(int firstFreeBlock, int blockSize)
          Create a new free space map.
 
Method Summary
 long allocate(int length)
          Allocate a number of blocks and mark them as used.
 void clear()
          Reset the list.
 void free(long pos, int length)
          Mark the space as free.
 int getFillRate()
          Get the fill rate of the space in percent.
 long getFirstFree()
          Get the position of the first free space.
 boolean isFree(long pos, int length)
          Check whether one of the blocks is free.
 boolean isUsed(long pos, int length)
          Check whether one of the blocks is in use.
 void markUsed(long pos, int length)
          Mark the space as in use.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FreeSpaceBitSet

public FreeSpaceBitSet(int firstFreeBlock,
                       int blockSize)
Create a new free space map.

Parameters:
firstFreeBlock - the first free block
blockSize - the block size
Method Detail

clear

public void clear()
Reset the list.


isUsed

public boolean isUsed(long pos,
                      int length)
Check whether one of the blocks is in use.

Parameters:
pos - the position in bytes
length - the number of bytes
Returns:
true if a block is in use

isFree

public boolean isFree(long pos,
                      int length)
Check whether one of the blocks is free.

Parameters:
pos - the position in bytes
length - the number of bytes
Returns:
true if a block is free

allocate

public long allocate(int length)
Allocate a number of blocks and mark them as used.

Parameters:
length - the number of bytes to allocate
Returns:
the start position in bytes

markUsed

public void markUsed(long pos,
                     int length)
Mark the space as in use.

Parameters:
pos - the position in bytes
length - the number of bytes

free

public void free(long pos,
                 int length)
Mark the space as free.

Parameters:
pos - the position in bytes
length - the number of bytes

getFillRate

public int getFillRate()
Get the fill rate of the space in percent. The value 0 means the space is completely free, and 100 means it is completely full.

Returns:
the fill rate (0 - 100)

getFirstFree

public long getFirstFree()
Get the position of the first free space.

Returns:
the position.

toString

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