package com.justdebugit.thrift.pool;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
public abstract class AbstractStatefulPool<T> implements StatefulPool<T> {
private final AtomicReference<State> state = new AtomicReference<State>(State.UNINITIALIZED);
private final AtomicInteger refCnt = new AtomicInteger();
@Override
public AtomicReference<State> state() {
return state;
}
@Override
public AtomicInteger getRefCnt() {
return refCnt;
}
protected boolean isInitialized(){
return state.get()==State.INITIALIZED;
}
protected boolean hasRef(){
return refCnt.get()>0;
}
}