package net.sourceforge.pain;
import net.sourceforge.pain.util.*;
import java.io.*;
public class Flusher implements PulseListener {
/**
* period in Codebase PULSEs for flushes, could be changed from outside.
* default value is 30 seconds
*/
public int flushingPeriodInTicks = 30 * net.sourceforge.pain.Pulse.PULSE_PER_SCD;
/**
* time in Codebase PULSEs when for next flush, could be changed from outside
*/
public int nextFlushTime = flushingPeriodInTicks;
Flusher() {
}
public void pulse(int time) {
// Log.debug(time+"/"+nextFlushTime);
if (nextFlushTime <= time) {
Log.debug("flushing data to disk!");
try {
Codebase.getDB().flush();
} catch (IOException e) {
Log.error(e);
}
Log.debug("saved");
nextFlushTime = time + flushingPeriodInTicks;
}
}
}