org.objectweb.howl.log
Class LogRecord

java.lang.Object
  extended byorg.objectweb.howl.log.LogRecord
Direct Known Subclasses:
XALogRecord

public class LogRecord
extends java.lang.Object

LogRecord class used by Logger.replay().

This class may be extended by applications to provide Java Bean mappings for application data fields within the record.

Author:
Michael Giroux

Field Summary
 byte[] data
          byte[] containing unparsed record data.
 java.nio.ByteBuffer dataBuffer
          ByteBuffer wrapper for the data byte[].
protected  byte[][] fields
          array of individual record fields as passed to Logger.put(byte[][])
 long key
          log key associated with this LogRecord.
 short length
          length of the data record.
 long tod
          currentTimeMillis the log buffer containing this record was initialized.
 short type
          type of data record.
 
Constructor Summary
LogRecord(int size)
          constructs an instance of LogRecord with a byte[] of size data.
 
Method Summary
 int capacity()
           
protected  LogRecord get(org.objectweb.howl.log.LogBuffer lb)
          protected method to copy next logical record from the LogBuffer specified by the callers lb parameter.
 byte[][] getFields()
          Parse record data into a byte[][] that is equivalent to the one passed to Logger.put(byte[][]).
 boolean isCTRL()
          Return true if the current record is a control record.
 boolean isEOB()
          Return true if current record is an EOB type control record.
 void setFilterCtrlRecords(boolean filterCtrlRecords)
          Set the filterCtrlRecords member
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

type

public short type
type of data record.

USER data records have a type == 0.

Logger control record types are defined by LogRecordType.

See Also:
LogRecordType

length

public short length
length of the data record.


key

public long key
log key associated with this LogRecord.


fields

protected byte[][] fields
array of individual record fields as passed to Logger.put(byte[][])

See Also:
getFields()

data

public byte[] data
byte[] containing unparsed record data.


tod

public long tod
currentTimeMillis the log buffer containing this record was initialized.

LogBuffers normally flush to disk in something less than 50 ms, so this tod should be a pretty close approximation of the time the record was generated.


dataBuffer

public java.nio.ByteBuffer dataBuffer
ByteBuffer wrapper for the data byte[].

Constructor Detail

LogRecord

public LogRecord(int size)
constructs an instance of LogRecord with a byte[] of size data.

Parameters:
size - initial size of data buffer.

the get() method will reallocate the data buffer to accomdate larger records.

Method Detail

isEOB

public boolean isEOB()
Return true if current record is an EOB type control record.

Returns:
true if this record type is an EOB type.

isCTRL

public boolean isCTRL()
Return true if the current record is a control record.

Returns:
true if this record type has LogRecordType.CTRL set.

setFilterCtrlRecords

public void setFilterCtrlRecords(boolean filterCtrlRecords)
Set the filterCtrlRecords member

Parameters:
filterCtrlRecords -

capacity

public final int capacity()
Returns:
length of the byte[] that backs the ByteBuffer.

get

protected LogRecord get(org.objectweb.howl.log.LogBuffer lb)
                 throws InvalidLogBufferException
protected method to copy next logical record from the LogBuffer specified by the callers lb parameter.

Following the call to get() the number of data bytes transferred into this LogRecord's data buffer is available in LogRecord.length. The LogRecord.dataBuffer.limit is also set to the number of bytes transferred.

Sets LogRecord.type to LogRecordType.EOB if the position of this LogBuffer is at or beyond bytes used.

Sets the limit of this LogRecord to the number of bytes in the logical record being retreived.

LogBuffer.position() is unchanged if any exception is thrown.

Parameters:
lb - LogBuffer to get the next logical record from.
Returns:
this LogRecord.
Throws:
InvalidLogBufferException - if the size of the data record exceeds the bytes used for the buffer.
See Also:
LogRecordType

getFields

public byte[][] getFields()
Parse record data into a byte[][] that is equivalent to the one passed to Logger.put(byte[][]).

Returns:
byte[][] containing data that was originally put into the log.


Copyright © 2003-2006 HOWL Development Team. All Rights Reserved.