class ExponentialBackoffTimeoutStrategy implements TimeoutStrategy {

    public static long totalBackoffTimeout(
            long initTimeout,
            long maxTimeout,
            long reconCnt
    ) {
        long totalBackoffTimeout = initTimeout;

        for (int i = 1; i < reconCnt && totalBackoffTimeout < maxTimeout; i++)
            totalBackoffTimeout += backoffTimeout(totalBackoffTimeout, maxTimeout);

        return totalBackoffTimeout;
    }

    public  ExponentialBackoffTimeoutStrategy(
        long totalTimeout,
        long startTimeout,
        long maxTimeout
    );

}