org.exist.storage.btree
Class Paged.PageHeader

java.lang.Object
  extended by org.exist.storage.btree.Paged.PageHeader
Enclosing class:
Paged

public abstract static class Paged.PageHeader
extends Object


Field Summary
static int LENGTH_PAGE_DATA_LENGTH
           
static int LENGTH_PAGE_LSN
           
static int LENGTH_PAGE_NEXT_PAGE
           
static int LENGTH_PAGE_STATUS
           
 
Constructor Summary
Paged.PageHeader()
           
Paged.PageHeader(byte[] data, int offset)
           
 
Method Summary
 int getDataLen()
          The length of the Data
 long getLsn()
          Returns the LSN, i.e.
 long getNextPage()
          The next page for this Record (if overflowed)
 byte getStatus()
          The status of this page (UNUSED, RECORD, DELETED, etc...) - jmv - DESIGN_NOTE : 44 calls to this functions, mostly with switch; the "state" design pattern is appropriate to eliminate these non - object oriented switches, and put together all the behavior related to one state.
 boolean isDirty()
          Gets the dirty attribute of the PageHeader object
 int read(byte[] data, int offset)
           
 void setDataLen(int dataLen)
          The length of the Data
 void setDirty(boolean dirty)
           
 void setLsn(long lsn)
           
 void setNextPage(long nextPage)
          The next page for this Record (if overflowed)
 void setStatus(byte status)
          The status of this page (UNUSED, RECORD, DELETED, etc...)
 int write(byte[] data, int offset)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LENGTH_PAGE_STATUS

public static int LENGTH_PAGE_STATUS

LENGTH_PAGE_DATA_LENGTH

public static int LENGTH_PAGE_DATA_LENGTH

LENGTH_PAGE_NEXT_PAGE

public static int LENGTH_PAGE_NEXT_PAGE

LENGTH_PAGE_LSN

public static int LENGTH_PAGE_LSN
Constructor Detail

Paged.PageHeader

public Paged.PageHeader()

Paged.PageHeader

public Paged.PageHeader(byte[] data,
                        int offset)
                 throws IOException
Throws:
IOException
Method Detail

getDataLen

public final int getDataLen()
The length of the Data

Returns:
The dataLen value

getNextPage

public final long getNextPage()
The next page for this Record (if overflowed)

Returns:
The nextPage value

getStatus

public final byte getStatus()
The status of this page (UNUSED, RECORD, DELETED, etc...) - jmv - DESIGN_NOTE : 44 calls to this functions, mostly with switch; the "state" design pattern is appropriate to eliminate these non - object oriented switches, and put together all the behavior related to one state.

Returns:
The status value

isDirty

public final boolean isDirty()
Gets the dirty attribute of the PageHeader object

Returns:
The dirty value

getLsn

public final long getLsn()
Returns the LSN, i.e. the log sequence number, of the last operation that modified this page. This information is used during recovery: if the log sequence number of a log record is smaller or equal to the LSN stored in this page header, then the page has already been written to disk before the database failure. Otherwise, the modification is not yet reflected in the page and the operation needs to be redone.

Returns:
log sequence number of the last operation that modified this page.

setLsn

public final void setLsn(long lsn)

read

public int read(byte[] data,
                int offset)
         throws IOException
Throws:
IOException

write

public int write(byte[] data,
                 int offset)
          throws IOException
Throws:
IOException

setDataLen

public final void setDataLen(int dataLen)
The length of the Data

Parameters:
dataLen - The new dataLen value

setDirty

public final void setDirty(boolean dirty)

setNextPage

public final void setNextPage(long nextPage)
The next page for this Record (if overflowed)

Parameters:
nextPage - The new nextPage value

setStatus

public final void setStatus(byte status)
The status of this page (UNUSED, RECORD, DELETED, etc...)

Parameters:
status - The new status value


Copyright (C) Wolfgang Meier. All rights reserved.