1 package com.daffodilwoods.daffodildb.server.datasystem.persistentsystem; 2 3 import java.util.*; 4 5 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.*; 6 import com.daffodilwoods.daffodildb.utils.*; 7 import com.daffodilwoods.daffodildb.utils.byteconverter.*; 8 import com.daffodilwoods.database.resource.*; 9 10 15 public class FreeClusterList { 16 17 20 21 private _Table clusterInfo; 22 23 27 public ArrayList freeAddressList; 28 29 33 public static boolean flagForTestingOfFreeClusterList; 34 35 public FreeClusterList(_Table clusterInfo1) throws DException { 36 clusterInfo = clusterInfo1; 37 freeAddressList = new ArrayList(5); 38 } 39 40 46 47 public synchronized void addFreeCluster(_DatabaseUser user, int address) throws DException { 48 DatabaseUserTableIterator tableIterator = (DatabaseUserTableIterator) ( (Table) clusterInfo).getIterator(); 49 BufferRange[] bytes = new BufferRange[] {new BufferRange(CCzufDpowfsufs.getBytes(address))}; tableIterator.insert(user, bytes); 51 if(flagForTestingOfFreeClusterList) 52 freeAddressList.add(new Integer (address)); 53 } 54 55 62 63 public int checkFreeClusterList(_DatabaseUser user) throws DException { 64 DatabaseUserTableIterator tableIterator = (DatabaseUserTableIterator) ( (Table) clusterInfo).getIterator(); 65 if (tableIterator.first()) { 66 BufferRange values = (BufferRange) tableIterator.getColumnValues(0); 67 tableIterator.delete(user); 68 if(flagForTestingOfFreeClusterList) 69 freeAddressList.remove(new Integer (CCzufDpowfsufs.getInt(values.getBytes()).intValue())); 70 return CCzufDpowfsufs.getInt(values.getBytes()).intValue(); 71 } 72 return -1; 73 } 74 78 public void showFreeClusterList() throws DException { 79 DatabaseUserTableIterator tableIterator = (DatabaseUserTableIterator) ( (Table) clusterInfo).getIterator(); 80 int count = 0; 81 if (tableIterator.first()) { 82 do { 83 BufferRange values = (BufferRange) tableIterator.getColumnValues(0); 84 int add = CCzufDpowfsufs.getInt(values.getBytes()).intValue(); 85 count++; 86 } while (tableIterator.next()); 87 } 88 } 89 } 90 | Popular Tags |