package com.trendmicro.spn.common;
import java.util.Random;
public class InfiniteReconnect implements ReconnectCounter
{
private int nextDelay = 1;
private int tryCount = 0;
private int maxDelay = 900;
private int delayUnit = 1000;
private Random rand = new Random();
public void init() {
nextDelay = 1;
tryCount = 0;
}
public void setDelayUnit(int unit) {
if(unit > 0)
delayUnit = unit;
}
public void setMaxDelay(int delay) {
if(delay > 0)
maxDelay = delay;
}
public void waitAndCheckCounter() {
try {
int myDelay = nextDelay * delayUnit;
int delta = rand.nextInt() % (myDelay / 10);
Thread.sleep(myDelay + delta);
tryCount++;
}
catch(InterruptedException e) {
}
if(nextDelay * 2 <= maxDelay)
nextDelay *= 2;
else
nextDelay = maxDelay;
}
public int getCounter() {
return tryCount;
}
}