package com.justdebugit.thrift.common;
import java.util.concurrent.atomic.AtomicBoolean;
public abstract class AbstractLifeCycle implements LifeCycle{
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();
}