org.basex.io.random
Class TableMemAccess

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

public final class TableMemAccess
extends TableAccess

This class allows main memory access to the database table representation. NOTE: this class is not thread-safe.

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

Field Summary
 
Fields inherited from class org.basex.io.random.TableAccess
dirty, meta
 
Constructor Summary
TableMemAccess(MetaData md)
          Stores the table in long arrays.
 
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.
 int read1(int p, int o)
          Reads a byte value and returns it as an integer value.
 int read2(int p, int o)
          Reads a short value and returns it as an integer value.
 int read4(int p, int o)
          Reads an integer value.
 long read5(int p, int o)
          Reads a 5-byte value and returns it as a long value.
 void write1(int p, int o, int v)
          Writes a byte value to the specified position.
 void write2(int p, int o, int v)
          Writes a short value to the specified position.
 void write4(int p, int o, int v)
          Writes an integer value to the specified position.
 void write5(int p, int o, 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

TableMemAccess

public TableMemAccess(MetaData md)
Stores the table in long arrays.

Parameters:
md - meta data
Method Detail

flush

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

Specified by:
flush in class TableAccess

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 p,
                 int o)
Description copied from class: TableAccess
Reads a byte value and returns it as an integer value.

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

read2

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

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

read4

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

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

read5

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

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

write1

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

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

write2

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

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

write4

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

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

write5

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

Specified by:
write5 in class TableAccess
Parameters:
p - pre value
o - 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