2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package TransactionalIO.core;
8 import java.util.HashMap;
14 public class TransactionalFileWrapperFactory {
18 private TransactionalFileWrapperFactory() {
20 // private static HashMap<INode, Adapter> filemappings;
21 public static HashMap filemappings = new HashMap();
23 private static native long getINodeNative(String filename);
26 //System.load("/home/navid/libnav.so");
27 // System.load("/home/navid/libkooni.so");
30 static INode getINodefromFileName(String filename) {
31 return new INode(getINodeNative(filename), filename);
36 public synchronized static GlobalINodeState getTateransactionalFileINodeState(INode inode) {
38 return (GlobalINodeState)filemappings.get(inode.getNumber());
41 public synchronized static GlobalINodeState createTransactionalFile(INode inode, String filename, String mode) {
43 long inodenumber = inode.getNumber();
44 if (inodenumber != -1)
46 if (filemappings.containsKey(inode.getNumber())) {
47 // System.out.println("here");
48 return (GlobalINodeState)filemappings.get(inode.getNumber());
53 long length = new File(filename).length();
55 GlobalINodeState inodestate = new GlobalINodeState(inode, length);
56 filemappings.put(inode.getNumber(), inodestate);