package com.sleepycat.je.cleaner;
class FileSelector {
private Set pendingDBs;
/**
* Adds the given DatabaseId to the pending DB set.
*/
synchronized boolean addPendingDB( DatabaseId dbId){
boolean added=pendingDBs.add(dbId);
anyPendingDuringCheckpoint=true;
return added;
}
/**
* Returns an array of DatabaseIds for DBs that were pending deletion in a
* prior cleaning attempt, or null if no DBs are pending.
*/
synchronized DatabaseId[] getPendingDBs(){
if (pendingDBs.size() > 0) {
DatabaseId[] dbs=new DatabaseId[pendingDBs.size()];
pendingDBs.toArray(dbs);
return dbs;
}
else {
return null;
}
}
/**
* Removes the DatabaseId from the pending DB set.
*/
synchronized void removePendingDB( DatabaseId dbId){
pendingDBs.remove(dbId);
updateProcessedFiles();
}
protected void hook163(){
pendingDBs=new HashSet();
original();
}
protected void hook164(){
anyPendingDuringCheckpoint|=!pendingDBs.isEmpty();
original();
}
protected boolean hook165( boolean b){
b&=pendingDBs.isEmpty();
return original(b);
}
}