package com.sleepycat.je.recovery;
import com.sleepycat.je.utilint.DbLsn;
import de.ovgu.cide.jakutil.*;
/**
* RecoveryInfo keeps information about recovery processing.
*/
public class RecoveryInfo {
public long lastUsedLsn=DbLsn.NULL_LSN;
public long nextAvailableLsn=DbLsn.NULL_LSN;
public long firstActiveLsn=DbLsn.NULL_LSN;
public long checkpointStartLsn=DbLsn.NULL_LSN;
public long checkpointEndLsn=DbLsn.NULL_LSN;
public long useRootLsn=DbLsn.NULL_LSN;
public long partialCheckpointStartLsn=DbLsn.NULL_LSN;
public CheckpointEnd checkpointEnd;
public long useMaxNodeId;
public int useMaxDbId;
public long useMaxTxnId;
public int numMapINs;
public int numOtherINs;
public int numBinDeltas;
public int numDuplicateINs;
public int lnFound;
public int lnNotFound;
public int lnInserted;
public int lnReplaced;
public int nRepeatIteratorReads;
public String toString(){
StringBuffer sb=new StringBuffer();
sb.append("Recovery Info");
appendLsn(sb," lastUsed=",lastUsedLsn);
appendLsn(sb," nextAvail=",nextAvailableLsn);
appendLsn(sb," ckptStart=",checkpointStartLsn);
appendLsn(sb," firstActive=",firstActiveLsn);
appendLsn(sb," ckptEnd=",checkpointEndLsn);
appendLsn(sb," useRoot=",useRootLsn);
sb.append(" ckptEnd=<").append(checkpointEnd).append(">");
sb.append(" useMaxNodeId=").append(useMaxNodeId);
sb.append(" useMaxDbId=").append(useMaxDbId);
sb.append(" useMaxTxnId=").append(useMaxTxnId);
sb.append(" numMapINs=").append(numMapINs);
sb.append(" numOtherINs=").append(numOtherINs);
sb.append(" numBinDeltas=").append(numBinDeltas);
sb.append(" numDuplicateINs=").append(numDuplicateINs);
sb.append(" lnFound=").append(lnFound);
sb.append(" lnNotFound=").append(lnNotFound);
sb.append(" lnInserted=").append(lnInserted);
sb.append(" lnReplaced=").append(lnReplaced);
sb.append(" nRepeatIteratorReads=").append(nRepeatIteratorReads);
return sb.toString();
}
private void appendLsn( StringBuffer sb, String name, long lsn){
if (lsn != DbLsn.NULL_LSN) {
sb.append(name).append(DbLsn.getNoFormatString(lsn));
}
}
}