org.rx.socks.http.cookie.persistence.MemoryCookiePersistor Maven / Gradle / Ivy
package org.rx.socks.http.cookie.persistence;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import okhttp3.Cookie;
import org.rx.core.NQuery;
public class MemoryCookiePersistor implements CookiePersistor {
private static String createCookieKey(Cookie cookie) {
return (cookie.secure() ? "https" : "http") + "://" + cookie.domain() + cookie.path() + "|" + cookie.name();
}
private final ConcurrentHashMap store;
public MemoryCookiePersistor() {
store = new ConcurrentHashMap<>();
}
@Override
public List loadAll() {
return NQuery.of(store.values()).toList();
}
@Override
public void saveAll(Collection cookies) {
for (Cookie cookie : cookies) {
store.put(createCookieKey(cookie), cookie);
}
}
@Override
public void removeAll(Collection cookies) {
for (Cookie cookie : cookies) {
store.remove(createCookieKey(cookie));
}
}
@Override
public void clear() {
store.clear();
}
}