package com.diodesoftware.scb;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class DownloadTokenMgr {
private static Map map = new HashMap();
private static Random rnd = new Random();
public static String genToken(int clipId){
int token = putNewToken(clipId);
return "" + token;
}
public static int getClipId(String token){
int i = Integer.parseInt(token);
TokenEntry e = (TokenEntry)map.get(i);
if(e == null)return -1;
return e.clipId;
}
private static int putNewToken(int clipId){
int i = rnd.nextInt(500000000);
if(map.containsKey(i))
return putNewToken(clipId);
TokenEntry e = new TokenEntry();
e.time = System.currentTimeMillis();
e.clipId = clipId;
map.put(i, e);
return i;
}
public static void cleanOldTokens(){
long l = System.currentTimeMillis() - 20*60*1000;
List toRemove = new ArrayList();
Iterator iter = map.keySet().iterator();
while(iter.hasNext()){
int k = ((Integer)iter.next()).intValue();
TokenEntry te = (TokenEntry)map.get(k);
if(te.time < l)
toRemove.add(k);
}
iter = toRemove.iterator();
while(iter.hasNext()){
map.remove(iter.next());
}
}
}