package com.sleepycat.je.utilint;
public class Tracer implements LoggableObject, LogReadable {
/**
* @see LoggableObject#getLogType
*/
public LogEntryType getLogType(){
return LogEntryType.LOG_TRACE;
}
/**
* @see LoggableObject#marshallOutsideWriteLatchCan be marshalled outside the log write latch.
*/
public boolean marshallOutsideWriteLatch(){
return true;
}
/**
* @see LoggableObject#countAsObsoleteWhenLogged
*/
public boolean countAsObsoleteWhenLogged(){
return false;
}
/**
* @see LoggableObject#postLogWork
*/
public void postLogWork( long justLoggedLsn){
}
/**
* @see LoggableObject#getLogSize()
*/
public int getLogSize(){
return (LogUtils.getTimestampLogSize() + LogUtils.getStringLogSize(msg));
}
/**
* @see LoggableObject#writeToLog
*/
public void writeToLog( ByteBuffer logBuffer){
LogUtils.writeTimestamp(logBuffer,time);
LogUtils.writeString(logBuffer,msg);
}
/**
* @see LogReadable#readFromLog
*/
public void readFromLog( ByteBuffer itemBuffer, byte entryTypeVersion){
time=LogUtils.readTimestamp(itemBuffer);
msg=LogUtils.readString(itemBuffer);
}
/**
* @see LogReadable#dumpLog
*/
public void dumpLog( StringBuffer sb, boolean verbose){
sb.append("<Dbg time=\"");
sb.append(time);
sb.append("\">");
sb.append("<msg val=\"");
sb.append(msg);
sb.append("\"/>");
sb.append("</Dbg>");
}
/**
* @see LogReadable#logEntryIsTransactional
*/
public boolean logEntryIsTransactional(){
return false;
}
/**
* @see LogReadable#getTransactionId
*/
public long getTransactionId(){
return 0;
}
public String toString(){
return (time + "/" + msg);
}
/**
* Just in case it's ever used as a hash key.
*/
public int hashCode(){
return toString().hashCode();
}
/**
* Override Object.equals
*/
public boolean equals( Object obj){
if (this == obj) {
return true;
}
if (!(obj instanceof Tracer)) {
return false;
}
return (toString().equals(obj.toString()));
}
}