1 9 package org.ozoneDB.core.storage.magicStore; 10 11 import org.ozoneDB.DxLib.DxDeque; 12 import org.ozoneDB.DxLib.DxHashMap; 13 import org.ozoneDB.DxLib.DxListDeque; 14 import org.ozoneDB.DxLib.DxMap; 15 import org.ozoneDB.DxLib.DxSet; 16 import org.ozoneDB.core.Env; 17 import org.ozoneDB.core.Transaction; 18 import org.ozoneDB.core.TransactionID; 19 import org.ozoneDB.core.User; 20 import org.ozoneDB.core.storage.ClusterID; 21 22 26 public class MagicTransaction extends Transaction { 27 28 public final static int DEFAULT_TABLE_SIZE = 1024; 29 30 protected ClusterID lrucid; 31 32 protected DxMap idTable; 33 34 protected DxMap nameTable; 36 37 protected DxSet commitClusterIDs; 38 39 private DxDeque idTableChanges; 40 41 private DxDeque nameTableChanges; 42 43 public MagicTransaction(Env env, User owner) { 44 super(env, owner); 45 idTable = new DxHashMap(DEFAULT_TABLE_SIZE); 46 } 47 48 52 public MagicTransaction(TransactionID _taID) { 53 super(_taID); 54 idTable = new DxHashMap(DEFAULT_TABLE_SIZE); 55 } 56 57 58 public void nameTableChanges_push(NameTableChange change) { 59 if (nameTableChanges == null) { 60 nameTableChanges = new DxListDeque(); 61 } 62 nameTableChanges.pushTop(change); 63 } 64 65 66 public NameTableChange nameTableChanges_pop() { 67 return nameTableChanges != null ? (NameTableChange) nameTableChanges.popBottom() : null; 68 } 69 70 71 public void idTableChanges_push(IDTableChange change) { 72 if (idTableChanges == null) { 73 idTableChanges = new DxListDeque(); 74 } 75 idTableChanges.pushTop(change); 76 } 77 78 79 public IDTableChange idTableChanges_pop() { 80 return idTableChanges != null ? (IDTableChange) idTableChanges.popBottom() : null; 81 } 82 83 } 84 | Popular Tags |