1 8 package org.ozoneDB.core.storage.gammaStore; 9 10 import java.io.ByteArrayOutputStream ; 11 import java.io.IOException ; 12 import java.io.ObjectOutputStream ; 13 import java.util.Collections ; 14 import java.util.HashSet ; 15 import java.util.Iterator ; 16 import java.util.LinkedHashMap ; 17 import java.util.LinkedHashSet ; 18 import java.util.Map ; 19 import java.util.Set ; 20 import java.util.Map.Entry; 21 import java.util.logging.Level ; 22 import java.util.logging.Logger ; 23 import org.ozoneDB.OzoneInternalException; 24 25 37 public class Deleter { 38 39 private class DeleteTask implements Runnable { 40 41 private Storable storable; 42 private StorageFactory storageFactory; 43 44 DeleteTask(Storable storable, StorageFactory storageFactory) { 45 this.storable = storable; 46 this.storageFactory = storageFactory; 47 } 48 49 public void run() { 50 try { 51 storageFactory.delete(storable.getStorageName()); 52 } catch (IOException e) { 53 throw new OzoneInternalException(e); 54 } 55 } 56 57 public boolean equals(Object obj) { 58 return false; 59 } 60 61 } 62 63 private static final Logger log = Logger.getLogger(Deleter.class.getName()); 64 65 private AsyncExec asyncExec; 66 67 public Deleter(String name) { 68 asyncExec = new AsyncExec(name, Thread.MIN_PRIORITY, true); 69 } 70 71 74 public void delete(Storable storable, StorageFactory storageFactory) { 75 if (log.isLoggable(Level.FINER)) log.finer("enqueueing " + storable + " for deletion"); 76 DeleteTask deleteTask = new DeleteTask(storable, storageFactory); 77 asyncExec.put(deleteTask, deleteTask); 78 } 79 80 public int size() { 81 return asyncExec.size(); 82 } 83 84 public void stopWhenReady() { 85 asyncExec.stopWhenReady(); 86 } 87 88 } 89 | Popular Tags |