/** * Create a new ExpiringSessionRecycler instance * * @param timeToLive The delay after which the session is going to be recycled * @param expirationInterval The delay after which the expiration occurs */ public ExpiringSessionRecycler(int timeToLive, int expirationInterval) { sessionMap = new ExpiringMap<>(timeToLive, expirationInterval); mapExpirer = sessionMap.getExpirer(); sessionMap.addExpirationListener(new DefaultExpirationListener()); }
/** * {@inheritDoc} */ @Override public IoSession recycle(SocketAddress remoteAddress) { return sessionMap.get(remoteAddress); }
/** * @return The session expiration time in second */ public int getExpirationInterval() { return sessionMap.getExpirationInterval(); }
/** * {@inheritDoc} */ @Override public void put(IoSession session) { mapExpirer.startExpiringIfNotStarted(); SocketAddress key = session.getRemoteAddress(); if (!sessionMap.containsKey(key)) { sessionMap.put(key, session); } }
/** * {@inheritDoc} */ @Override public void putAll(Map<? extends K, ? extends V> inMap) { for (Entry<? extends K, ? extends V> e : inMap.entrySet()) { this.put(e.getKey(), e.getValue()); } }
/** * @return The session time-to-live in second */ public int getTimeToLive() { return sessionMap.getTimeToLive(); }
/** * {@inheritDoc} */ @Override public void remove(IoSession session) { sessionMap.remove(session.getRemoteAddress()); }
/** * Set the interval in which a session will live in the map before it is removed. * * @param expirationInterval The session expiration time in seconds */ public void setExpirationInterval(int expirationInterval) { sessionMap.setExpirationInterval(expirationInterval); }
/** * {@inheritDoc} */ @Override public void put(IoSession session) { mapExpirer.startExpiringIfNotStarted(); SocketAddress key = session.getRemoteAddress(); if (!sessionMap.containsKey(key)) { sessionMap.put(key, session); } }
public void putAll(Map<? extends K, ? extends V> inMap) { for (Entry<? extends K, ? extends V> e : inMap.entrySet()) { this.put(e.getKey(), e.getValue()); } }
/** * @return The session time-to-live in second */ public int getTimeToLive() { return sessionMap.getTimeToLive(); }
/** * {@inheritDoc} */ @Override public void remove(IoSession session) { sessionMap.remove(session.getRemoteAddress()); }
/** * Set the interval in which a session will live in the map before it is removed. * * @param expirationInterval The session expiration time in seconds */ public void setExpirationInterval(int expirationInterval) { sessionMap.setExpirationInterval(expirationInterval); }
public ExpiringSessionRecycler(int timeToLive, int expirationInterval) { sessionMap = new ExpiringMap<>(timeToLive, expirationInterval); mapExpirer = sessionMap.getExpirer(); sessionMap.addExpirationListener(new DefaultExpirationListener()); }
public void put(IoSession session) { mapExpirer.startExpiringIfNotStarted(); Object key = generateKey(session); if (!sessionMap.containsKey(key)) { sessionMap.put(key, session); } }
/** * {@inheritDoc} */ @Override public IoSession recycle(SocketAddress remoteAddress) { return sessionMap.get(remoteAddress); }
/** * {@inheritDoc} */ @Override public void putAll(Map<? extends K, ? extends V> inMap) { for (Entry<? extends K, ? extends V> e : inMap.entrySet()) { this.put(e.getKey(), e.getValue()); } }
public int getTimeToLive() { return sessionMap.getTimeToLive(); }
public void remove(IoSession session) { sessionMap.remove(generateKey(session)); }
/** * @return The session expiration time in second */ public int getExpirationInterval() { return sessionMap.getExpirationInterval(); }