package org.hadatac.console.http; import java.util.HashMap; public class ResumableInfoStorage { //Single instance private ResumableInfoStorage() { } private static ResumableInfoStorage sInstance; public static synchronized ResumableInfoStorage getInstance() { if (sInstance == null) { sInstance = new ResumableInfoStorage(); } return sInstance; } //resumableIdentifier -- ResumableInfo private HashMap<String, ResumableInfo> mMap = new HashMap<String, ResumableInfo>(); /** * Get ResumableInfo from mMap or Create a new one. * @param resumableChunkSize * @param resumableTotalSize * @param resumableIdentifier * @param resumableFilename * @param resumableRelativePath * @param resumableFilePath * @return */ public synchronized ResumableInfo get(int resumableChunkSize, long resumableTotalSize, String resumableIdentifier, String resumableFilename, String resumableRelativePath, String resumableFilePath) { ResumableInfo info = mMap.get(resumableIdentifier); if (info == null) { info = new ResumableInfo(); info.resumableChunkSize = resumableChunkSize; info.resumableTotalSize = resumableTotalSize; info.resumableIdentifier = resumableIdentifier; info.resumableFilename = resumableFilename; info.resumableRelativePath = resumableRelativePath; info.resumableFilePath = resumableFilePath; mMap.put(resumableIdentifier, info); } return info; } /** * ɾ��ResumableInfo * @param info */ public void remove(ResumableInfo info) { mMap.remove(info.resumableIdentifier); } }