package ru.qatools.gridrouter.sessions;
import java.time.Duration;
import java.util.Set;
/**
* @author Innokenty Shuvalov innokenty@yandex-team.ru
*/
public interface StatsCounter {
default void startSession(String sessionId, String user, String browser, String version) {
startSession(sessionId, user, browser, version, null);
}
default void updateSession(String sessionId) {
updateSession(sessionId, null);
}
default void deleteSession(String sessionId) {
deleteSession(sessionId, null);
}
void startSession(String sessionId, String user, String browser, String version, String route);
default void updateSession(String sessionId, String route) {
}
void deleteSession(String sessionId, String route);
void expireSessionsOlderThan(Duration duration);
Set<String> getActiveSessions();
GridRouterUserStats getStats(String user);
int getSessionsCountForUser(String user);
int getSessionsCountForUserAndBrowser(String user, String browser, String version);
}