/** This method is used to retrieve metaInfo during sending. */ public static synchronized MetaInfo retrieveMetaInfo( String fileId, int blockSize, int thresholdSize, String transId, String originalEventId, int totalBlocks, int lastBlockSize) throws FileAccessException, ApplicationException { if (fileId == null) throw new ApplicationException("FileId cannot null!"); if (transId == null) throw new ApplicationException("Transaction Id cannot null!"); if (originalEventId == null) throw new ApplicationException("Original event Id cannot null!"); if (allMetaInfo.containsKey(fileId)) { MetaInfo meta = (MetaInfo) allMetaInfo.get(fileId); meta.checkMetaInfo( fileId, blockSize, thresholdSize, transId, originalEventId, totalBlocks, lastBlockSize); return meta; } else { MetaInfo meta = new MetaInfo( fileId, blockSize, thresholdSize, transId, originalEventId, totalBlocks, lastBlockSize); allMetaInfo.put(fileId, meta); return meta; } }
/** This method is used to retrieve metaInfo when receiving file. */ public static synchronized MetaInfo retrieveMetaInfo(String fileId, int totalBlocks) throws FileAccessException, ApplicationException { if (fileId == null) throw new ApplicationException("FileId cannot null!"); if (allMetaInfo.containsKey(fileId)) { MetaInfo meta = (MetaInfo) allMetaInfo.get(fileId); meta.checkMetaInfo(fileId); if (meta.getTotalBlocks() < totalBlocks) meta.setTotalBlocks(totalBlocks); return meta; } else { MetaInfo meta = new MetaInfo(fileId, totalBlocks); allMetaInfo.put(fileId, meta); return meta; } }
public static synchronized void clearExpiredMetaInfoInMem() { Enumeration fileIdList = allMetaInfo.keys(); Vector expiredFileIdList = new Vector(); MetaInfo metaInfo = null; String fileId = null; while (fileIdList.hasMoreElements()) { fileId = (String) fileIdList.nextElement(); metaInfo = (MetaInfo) allMetaInfo.get(fileId); if ((metaInfo.getTimeLastAction() + 300000) < TimeUtil.localToUtc()) expiredFileIdList.add(fileId); } for (int i = 0; i < expiredFileIdList.size(); i++) { fileId = (String) expiredFileIdList.get(i); removeMetaInfoInMem(fileId); } }