package bao.BerkeleyDB; import java.io.FileNotFoundException; import java.util.Map.Entry; //import java.util.concurrent.locks.Lock; //import java.util.concurrent.locks.ReadWriteLock; //import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.Set; import com.sleepycat.bind.EntryBinding; import com.sleepycat.bind.serial.SerialBinding; import com.sleepycat.collections.StoredMap; import com.sleepycat.je.DatabaseException; /** * �����ݿ���б��桢���ҡ�ɾ���Ȳ��� * * ���ݴ������ݿ�ĸ�ʽΪ��Map<IP��Map<�������ڣ�Map<ʱ�̣������>>> * * */ public class BerkeleyDB extends AbstractDBD{ private StoredMap<String,Object> pendingUrisDB = null; public BerkeleyDB(String homeDirectory) throws DatabaseException,FileNotFoundException { super(homeDirectory); // TODO Auto-generated constructor stub EntryBinding<String> keyBinding = new SerialBinding<String>(javaCatalog, String.class); EntryBinding<Object> valueBinding = new SerialBinding<Object>(javaCatalog,Object.class); pendingUrisDB = new StoredMap<String, Object>(database, keyBinding, valueBinding, true); } /** * �������ݿ� * * */ public Set<Entry<String, Object>> iteration(){ return pendingUrisDB.entrySet(); } /** * �������ݿ� * * */ public void putData(String key, Object value){ put(key, value); } /** * ����keyֵȡvalueֵ * */ public Object getData(String key){ return get(key); } /** * ����key�ж��Ƿ�����ü�¼ * * */ public boolean containsKey(Object key){ return pendingUrisDB.containsKey(key); } /** * �ر����ݿ� * */ public void closeBDB(){ close(); } @Override protected void put(Object key, Object value) { // TODO Auto-generated method stub pendingUrisDB.put((String)key, value); } @Override protected Object get(Object key) { // TODO Auto-generated method stub return pendingUrisDB.get(key); } @Override protected Object delete(Object key) { // TODO Auto-generated method stub return pendingUrisDB.remove(key); } }