org.basex.io
Class TableDiskAccess

java.lang.Object
  extended by org.basex.io.TableAccess
      extended by org.basex.io.TableDiskAccess

public final class TableDiskAccess
extends TableAccess

This class stores the table on disk and reads it block-wise.

Author:
Workgroup DBIS, University of Konstanz 2005-10, ISC License, Christian Gruen, Tim Petrowsky

Field Summary
 RandomAccessFile data
          File storing all blocks.
 
Constructor Summary
TableDiskAccess(MetaData md, String pf)
          Constructor.
 
Method Summary
 int blocks()
          Returns the number of used blocks; needed for JUnit tests.
 void close()
          Closes the table access.
 void delete(int first, int nr)
          Deletes the specified number of entries from the database.
 void flush()
          Flushes the table contents.
 void insert(int pre, byte[] entries)
          Inserts the specified entries into the database.
 int read1(int pre, int off)
          Reads a byte value and returns it as an integer value.
 int read2(int pre, int off)
          Reads a short value and returns it as an integer value.
 int read4(int pre, int off)
          Reads an integer value.
 long read5(int pre, int off)
          Reads a 5-byte value and returns it as a long value.
 void set(int pre, byte[] entries)
          Copies the specified entry into the database.
 int size()
          Returns the number of entries; needed for JUnit tests.
 void write1(int pre, int off, int v)
          Writes a byte value to the specified position.
 void write2(int pre, int off, int v)
          Writes a short value to the specified position.
 void write4(int pre, int off, int v)
          Writes an integer value to the specified position.
 void write5(int pre, int off, long v)
          Writes a 5-byte value to the specified position.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

public final RandomAccessFile data
File storing all blocks.

Constructor Detail

TableDiskAccess

public TableDiskAccess(MetaData md,
                       String pf)
                throws IOException
Constructor.

Parameters:
md - meta data
pf - file prefix
Throws:
IOException - I/O exception
Method Detail

flush

public void flush()
           throws IOException
Description copied from class: TableAccess
Flushes the table contents.

Specified by:
flush in class TableAccess
Throws:
IOException - I/O exception

close

public void close()
           throws IOException
Description copied from class: TableAccess
Closes the table access.

Specified by:
close in class TableAccess
Throws:
IOException - I/O exception

read1

public int read1(int pre,
                 int off)
Description copied from class: TableAccess
Reads a byte value and returns it as an integer value.

Specified by:
read1 in class TableAccess
Parameters:
pre - pre value
off - offset
Returns:
integer value

read2

public int read2(int pre,
                 int off)
Description copied from class: TableAccess
Reads a short value and returns it as an integer value.

Specified by:
read2 in class TableAccess
Parameters:
pre - pre value
off - offset
Returns:
integer value

read4

public int read4(int pre,
                 int off)
Description copied from class: TableAccess
Reads an integer value.

Specified by:
read4 in class TableAccess
Parameters:
pre - pre value
off - offset
Returns:
integer value

read5

public long read5(int pre,
                  int off)
Description copied from class: TableAccess
Reads a 5-byte value and returns it as a long value.

Specified by:
read5 in class TableAccess
Parameters:
pre - pre value
off - offset
Returns:
integer value

write1

public void write1(int pre,
                   int off,
                   int v)
Description copied from class: TableAccess
Writes a byte value to the specified position.

Specified by:
write1 in class TableAccess
Parameters:
pre - pre value
off - offset
v - value to be written

write2

public void write2(int pre,
                   int off,
                   int v)
Description copied from class: TableAccess
Writes a short value to the specified position.

Specified by:
write2 in class TableAccess
Parameters:
pre - pre value
off - offset
v - value to be written

write4

public void write4(int pre,
                   int off,
                   int v)
Description copied from class: TableAccess
Writes an integer value to the specified position.

Specified by:
write4 in class TableAccess
Parameters:
pre - pre value
off - offset
v - value to be written

write5

public void write5(int pre,
                   int off,
                   long v)
Description copied from class: TableAccess
Writes a 5-byte value to the specified position.

Specified by:
write5 in class TableAccess
Parameters:
pre - pre value
off - offset
v - value to be written

delete

public void delete(int first,
                   int nr)
Description copied from class: TableAccess
Deletes the specified number of entries from the database.

Specified by:
delete in class TableAccess
Parameters:
first - pre value of the first node to delete
nr - number of entries to be deleted

insert

public void insert(int pre,
                   byte[] entries)
Description copied from class: TableAccess
Inserts the specified entries into the database.

Specified by:
insert in class TableAccess
Parameters:
pre - pre value
entries - array of bytes containing the entries to insert

set

public void set(int pre,
                byte[] entries)
Description copied from class: TableAccess
Copies the specified entry into the database.

Specified by:
set in class TableAccess
Parameters:
pre - pre value
entries - array of bytes containing the entries to insert

size

public int size()
Returns the number of entries; needed for JUnit tests.

Returns:
number of used blocks

blocks

public int blocks()
Returns the number of used blocks; needed for JUnit tests.

Returns:
number of used blocks