package com.sleepycat.je.log;
import com.sleepycat.je.DatabaseException;
import de.ovgu.cide.jakutil.*;
/**
* A class that implements LoggableObject can be stored as a JE log entry.
*/
public interface LoggableObject extends LogWritable {
/**
* All objects that are reponsible for a generating a type of log entry
* must implement this.
* @return the type of log entry
*/
public LogEntryType getLogType();
/**
* Do any processing we need to do after logging, while under the logging
* latch.
*/
public void postLogWork( long justLoggedLsn) throws DatabaseException ;
/**
* Return true if this item can be marshalled outside the log write
* latch.
*/
public boolean marshallOutsideWriteLatch();
/**
* Returns true if this item should be counted as obsoleted when logged.
* This currently applies to deleted LNs only.
*/
public boolean countAsObsoleteWhenLogged();
}