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); } }