package com.justdebugit.thrift.pool;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import com.justdebugit.thrift.common.LifeCycle;
public abstract class LifeCycleMap extends ConcurrentHashMap<String, byte[]> implements LifeCycle{
private static final long serialVersionUID = -4277180793264814684L;
protected AtomicBoolean state = new AtomicBoolean(false);
public boolean isStarted(){
return state.get();
};
public void start(){
if (state.compareAndSet(false, true)) {
doStart();
}
}
public void stop(){
if (state.compareAndSet(true, false)) {
doStop();
}
}
protected abstract void doStart();
protected abstract void doStop();
}