package com.github.jaceko.circuitswitcher;
import java.util.concurrent.atomic.AtomicLong;
public class CircuitOpen implements CircuitState {
private final AtomicLong tripTime = new AtomicLong(System.currentTimeMillis());
public void onSuccess(Circuit circuit) {
}
public void onError(Circuit circuit) {
}
public boolean connectionAvailable(Circuit circuit) {
if (elapsed() > circuit.getResetTimeout()) {
circuit.attemptReset();
return true;
} else {
return false;
}
}
private long elapsed() {
long now = System.currentTimeMillis();
long elapsed = elapsed(now);
return elapsed;
}
private long elapsed(long now) {
return now - tripTime.get();
}
@Override
public String toString() {
return String.format("CircuitOpen [tripTime=%s, elapsedTime=%s]", tripTime, elapsed());
}
}