package org.prevayler.foundation.network;
import java.util.HashMap;
/**
* Manages the sessions for a service
*/
public class SessionsManagerImpl implements SessionsManager {
private final long timeStamp;
private int _masterSessionId=100;
private HashMap _sessions=new HashMap();
public SessionsManagerImpl(){
this(System.currentTimeMillis());
}
protected SessionsManagerImpl( long timeStamp){
this.timeStamp=timeStamp;
}
public synchronized StubbornNetworkProxy find( NetworkSessionId sessionId){
return (StubbornNetworkProxy)_sessions.get(sessionId);
}
public synchronized NetworkSessionId add( StubbornNetworkProxy receiver){
NetworkSessionId key=new NetworkSessionId(timeStamp,_masterSessionId++);
_sessions.put(key,receiver);
return key;
}
public synchronized void remove( NetworkSessionId sessionId){
_sessions.remove(sessionId);
}
}