public static Operation alloc(int type, String dirName, String name) { return alloc(type, dirName, name, null); }
public static Operation alloc(int type, String dirName, String name) { return alloc(type, dirName, name, null); }
public void delete(String dirName, String name) { if (phase == RUN) { // We are during a transaction mark the object deleted in the log. Object key = OperationKey.newKey(dirName, name); log.put(key, Operation.alloc(Operation.DELETE, dirName, name)); } else { File file; if (dirName == null) { file = new File(dir, name); file.delete(); } else { File parentDir = new File(dir, dirName); file = new File(parentDir, name); file.delete(); deleteDir(parentDir); } } }
public void delete(String dirName, String name) { if (phase == RUN) { // We are during a transaction mark the object deleted in the log. Object key = OperationKey.newKey(dirName, name); log.put(key, Operation.alloc(Operation.DELETE, dirName, name)); } else { File file; if (dirName == null) { file = new File(dir, name); file.delete(); } else { File parentDir = new File(dir, dirName); file = new File(parentDir, name); file.delete(); deleteDir(parentDir); } } }
public void saveByteArray(byte[] buf, String dirName, String name, boolean copy, boolean first) throws IOException { if (phase == RUN) { // We are during a transaction put the new state in the log. Object key = OperationKey.newKey(dirName, name); log.put(key, Operation.alloc(Operation.SAVE, dirName, name, buf)); } else { // Save the new state on the disk. File file; if (dirName == null) { file = new File(dir, name); } else { File parentDir = new File(dir, dirName); if (!parentDir.exists()) { parentDir.mkdirs(); } file = new File(parentDir, name); } FileOutputStream fos = new FileOutputStream(file); fos.write(buf); fos.close(); } }
public void saveByteArray(byte[] buf, String dirName, String name, boolean copy, boolean first) throws IOException { if (phase == RUN) { // We are during a transaction put the new state in the log. Object key = OperationKey.newKey(dirName, name); log.put(key, Operation.alloc(Operation.SAVE, dirName, name, buf)); } else { // Save the new state on the disk. File file; if (dirName == null) { file = new File(dir, name); } else { File parentDir = new File(dir, dirName); if (!parentDir.exists()) { parentDir.mkdirs(); } file = new File(parentDir, name); } FileOutputStream fos = new FileOutputStream(file); fos.write(buf); fos.close(); } }
public final void delete(String dirName, String name) { Object key = OperationKey.newKey(dirName, name); Hashtable<Object, Operation> log = perThreadContext.get().getLog(); Operation op = Operation.alloc(Operation.DELETE, dirName, name); op = log.put(key, op); if (op != null) op.free(); }
public final void delete(String dirName, String name) { Object key = OperationKey.newKey(dirName, name); Hashtable log = ((Context) perThreadContext.get()).getLog(); Operation op = Operation.alloc(Operation.DELETE, dirName, name); op = (Operation) log.put(key, op); if (op != null) op.free(); }
public final void delete(String dirName, String name) { if (logmon.isLoggable(BasicLevel.DEBUG)) logmon.log(BasicLevel.DEBUG, "NTransaction, delete(" + dirName + ", " + name + ")"); Object key = OperationKey.newKey(dirName, name); Hashtable log = ((Context) perThreadContext.get()).getLog(); Operation op = Operation.alloc(Operation.DELETE, dirName, name); Operation old = (Operation) log.put(key, op); if (old != null) { if (old.type == Operation.CREATE) op.type = Operation.NOOP; old.free(); } }
public final void delete(String dirName, String name) { if (logmon.isLoggable(BasicLevel.DEBUG)) logmon.log(BasicLevel.DEBUG, "NTransaction, delete(" + dirName + ", " + name + ")"); Object key = OperationKey.newKey(dirName, name); Hashtable log = ((Context) perThreadContext.get()).getLog(); Operation op = Operation.alloc(Operation.DELETE, dirName, name); Operation old = (Operation) log.put(key, op); if (old != null) { if (old.type == Operation.CREATE) op.type = Operation.NOOP; old.free(); } }
public final void delete(String dirName, String name) { if (logmon.isLoggable(BasicLevel.DEBUG)) logmon.log(BasicLevel.DEBUG, "NTransaction, delete(" + dirName + ", " + name + ")"); Object key = OperationKey.newKey(dirName, name); Hashtable<Object, Operation> log = perThreadContext.get().getLog(); Operation op = Operation.alloc(Operation.DELETE, dirName, name); Operation old = log.put(key, op); if (old != null) { if (old.type == Operation.CREATE) op.type = Operation.NOOP; old.free(); } }
public final void delete(String dirName, String name) { if (logmon.isLoggable(BasicLevel.DEBUG)) logmon.log(BasicLevel.DEBUG, "NTransaction, delete(" + dirName + ", " + name + ")"); Object key = OperationKey.newKey(dirName, name); Hashtable<Object, Operation> log = perThreadContext.get().getLog(); Operation op = Operation.alloc(Operation.DELETE, dirName, name); Operation old = log.put(key, op); if (old != null) { if (old.type == Operation.CREATE) op.type = Operation.NOOP; old.free(); } }
protected final void saveInLog(byte[] buf, String dirName, String name, Hashtable log, boolean copy, boolean first) throws IOException { if (logmon.isLoggable(BasicLevel.DEBUG)) logmon.log(BasicLevel.DEBUG, "ATransaction, saveInLog(" + dirName + '/' + name + ", " + copy + ", " + first + ")"); Object key = OperationKey.newKey(dirName, name); Operation op = Operation.alloc(Operation.SAVE, dirName, name, buf); Operation old = (Operation) log.put(key, op); if (copy) { if ((old != null) && (old.type == Operation.SAVE) && (old.value.length == buf.length)) { // reuse old buffer op.value = old.value; } else { // alloc a new one op.value = new byte[buf.length]; } System.arraycopy(buf, 0, op.value, 0, buf.length); } if (old != null) old.free(); }
protected final void saveInLog(byte[] buf, String dirName, String name, Hashtable log, boolean copy, boolean first) throws IOException { if (logmon.isLoggable(BasicLevel.DEBUG)) logmon.log(BasicLevel.DEBUG, "ATransaction, saveInLog(" + dirName + '/' + name + ", " + copy + ", " + first + ")"); Object key = OperationKey.newKey(dirName, name); Operation op = Operation.alloc(Operation.SAVE, dirName, name, buf); Operation old = (Operation) log.put(key, op); if (copy) { if ((old != null) && (old.type == Operation.SAVE) && (old.value.length == buf.length)) { // reuse old buffer op.value = old.value; } else { // alloc a new one op.value = new byte[buf.length]; } System.arraycopy(buf, 0, op.value, 0, buf.length); } if (old != null) old.free(); }