Class ChecksumOperation

java.lang.Object
org.apache.derby.impl.store.raw.log.ChecksumOperation
All Implemented Interfaces:
Externalizable, Serializable, Formatable, TypedFormat, Loggable

public class ChecksumOperation extends Object implements Loggable
A Log Operation that represents a checksum for a group of log records that are written to the tranaction log file.
See Also:
  • Field Details

    • checksumAlgo

      private byte checksumAlgo
    • checksumValue

      private long checksumValue
    • dataLength

      private int dataLength
    • checksum

      private Checksum checksum
    • CRC32_ALGORITHM

      public static final byte CRC32_ALGORITHM
      See Also:
    • formatLength

      private static final int formatLength
  • Constructor Details

    • ChecksumOperation

      public ChecksumOperation()
  • Method Details

    • init

      public void init()
    • update

      protected void update(byte[] buf, int off, int len)
    • reset

      protected void reset()
    • initializeChecksumAlgo

      private void initializeChecksumAlgo()
    • writeExternal

      public void writeExternal(ObjectOutput out) throws IOException
      Specified by:
      writeExternal in interface Externalizable
      Throws:
      IOException
    • readExternal

      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      Specified by:
      readExternal in interface Externalizable
      Throws:
      IOException
      ClassNotFoundException
    • getStoredSize

      public int getStoredSize()
    • getTypeFormatId

      public int getTypeFormatId()
      Return my format identifier.
      Specified by:
      getTypeFormatId in interface TypedFormat
      Returns:
      The identifier. (A UUID stuffed in an array of 16 bytes).
    • doMe

      public void doMe(Transaction xact, LogInstant instant, LimitObjectInput in) throws StandardException
      Nothing to do for the checksum log record because it does need to be applied during redo.
      Specified by:
      doMe in interface Loggable
      Parameters:
      xact - the Transaction
      instant - the log instant of this operation
      in - optional data
      Throws:
      StandardException - Standard Derby policy.
    • getPreparedLog

      public ByteArray getPreparedLog()
      the default for prepared log is always null for all the operations that don't have optionalData. If an operation has optional data, the operation need to prepare the optional data for this method. Checksum has no optional data to write out
      Specified by:
      getPreparedLog in interface Loggable
    • needsRedo

      public boolean needsRedo(Transaction xact)
      Checksum does not need to be redone, it is used to just verify that log records are written completely.
      Specified by:
      needsRedo in interface Loggable
      Parameters:
      xact - The transaction trying to redo this operation
      Returns:
      true if operation needs redoing, false if not.
      See Also:
    • releaseResource

      public void releaseResource(Transaction xact)
      Checksum has no resources to release
      Specified by:
      releaseResource in interface Loggable
    • group

      public int group()
      Checksum is a raw store operation
      Specified by:
      group in interface Loggable
    • getDataLength

      protected int getDataLength()
      Access attributes of the checksum log record
    • isChecksumValid

      protected boolean isChecksumValid(byte[] data, int off, int length)
    • toString

      public String toString()
      DEBUG: Print self.
      Overrides:
      toString in class Object