org.basex.io.random
Class TableDiskAccess

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

public final class TableDiskAccess
extends TableAccess

This class stores the table on disk and reads it block-wise. NOTE: this class is not thread-safe.

Author:
BaseX Team 2005-12, BSD License, Christian Gruen, Tim Petrowsky

Field Summary
 
Fields inherited from class org.basex.io.random.TableAccess
dirty, meta
 
Constructor Summary
TableDiskAccess(MetaData md, boolean lock)
          Constructor.
 
Method Summary
 void close()
          Closes the table access.
protected  void copy(byte[] entries, int pre, int last)
          Copies the specified values into the database.
 void delete(int pre, 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.
 boolean lock(boolean lock)
          Tries to acquires a lock on the table.
static boolean locked(java.lang.String db, Context ctx)
          Checks if the table of the specified database is locked.
 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 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 org.basex.io.random.TableAccess
replace, set
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TableDiskAccess

public TableDiskAccess(MetaData md,
                       boolean lock)
                throws java.io.IOException
Constructor.

Parameters:
md - meta data
lock - exclusive access
Throws:
java.io.IOException - I/O exception
Method Detail

locked

public static boolean locked(java.lang.String db,
                             Context ctx)
Checks if the table of the specified database is locked.

Parameters:
db - name of database
ctx - database context
Returns:
result of check

flush

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

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

close

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

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

lock

public boolean lock(boolean lock)
Description copied from class: TableAccess
Tries to acquires a lock on the table. If a lock exists, it is first released.

Specified by:
lock in class TableAccess
Parameters:
lock - exclusive/shared lock
Returns:
success flag

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

copy

protected void copy(byte[] entries,
                    int pre,
                    int last)
Description copied from class: TableAccess
Copies the specified values into the database.

Specified by:
copy in class TableAccess
Parameters:
entries - entries to copy
pre - first target pre value
last - last pre value

delete

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

Specified by:
delete in class TableAccess
Parameters:
pre - 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