package info.frostfs.sdk.pool; import info.frostfs.sdk.dto.session.SessionToken; import org.apache.commons.lang3.StringUtils; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; public class SessionCache { private final ConcurrentMap cache = new ConcurrentHashMap<>(); private final long tokenDuration; private long currentEpoch; public SessionCache(long sessionExpirationDuration) { this.tokenDuration = sessionExpirationDuration; } public boolean contains(String key) { return cache.containsKey(key); } public SessionToken tryGetValue(String key) { return StringUtils.isBlank(key) ? null : cache.get(key); } public void setValue(String key, SessionToken value) { if (key != null) { cache.put(key, value); } } public void deleteByPrefix(String prefix) { cache.keySet().removeIf(key -> key.startsWith(prefix)); } }