ThresholdCircuitBreaker.java 1022 Bytes
package org.apache.commons.lang3.concurrent;

import java.util.concurrent.atomic.AtomicLong;

public class ThresholdCircuitBreaker
  extends AbstractCircuitBreaker<Long>
{
  private final long a;
  private final AtomicLong b = new AtomicLong(0L);
  
  public ThresholdCircuitBreaker(long paramLong)
  {
    this.a = paramLong;
  }
  
  public boolean checkState()
    throws CircuitBreakingException
  {
    return isOpen();
  }
  
  public void close()
  {
    super.close();
    this.b.set(0L);
  }
  
  public long getThreshold()
  {
    return this.a;
  }
  
  public boolean incrementAndCheckState(Long paramLong)
    throws CircuitBreakingException
  {
    if (this.a == 0L) {
      open();
    }
    if (this.b.addAndGet(paramLong.longValue()) > this.a) {
      open();
    }
    return checkState();
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/org/apache/commons/lang3/concurrent/ThresholdCircuitBreaker.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */