final public void start(final Task onCompleted) { getDispatchQueue().execute(new Task() { public void run() { if (_serviceState == CREATED || _serviceState == STOPPED) { final STARTING state = new STARTING(); state.add(onCompleted); _serviceState = state; _start(new Task() { public void run() { _serviceState = STARTED; state.done(); } }); } else if (_serviceState instanceof STARTING) { ((STARTING) _serviceState).add(onCompleted); } else if (_serviceState == STARTED) { if (onCompleted != null) { onCompleted.run(); } } else { if (onCompleted != null) { onCompleted.run(); } error("start should not be called from state: " + _serviceState); } } }); }
final public void start(final Runnable onCompleted) { start(new TaskWrapper(onCompleted)); }
final public void stop(final Runnable onCompleted) { stop(new TaskWrapper(onCompleted)); }
public void run() { if (_serviceState == STARTED) { final STOPPING state = new STOPPING(); state.add(onCompleted); _serviceState = state; _stop(new Task() { public void run() { _serviceState = STOPPED; state.done(); } }); } else if (_serviceState instanceof STOPPING) { ((STOPPING) _serviceState).add(onCompleted); } else if (_serviceState == STOPPED) { if (onCompleted != null) { onCompleted.run(); } } else { if (onCompleted != null) { onCompleted.run(); } error("stop should not be called from state: " + _serviceState); } } });
public void run() { if (_serviceState == CREATED || _serviceState == STOPPED) { final STARTING state = new STARTING(); state.add(onCompleted); _serviceState = state; _start(new Task() { public void run() { _serviceState = STARTED; state.done(); } }); } else if (_serviceState instanceof STARTING) { ((STARTING) _serviceState).add(onCompleted); } else if (_serviceState == STARTED) { if (onCompleted != null) { onCompleted.run(); } } else { if (onCompleted != null) { onCompleted.run(); } error("start should not be called from state: " + _serviceState); } } });
final public void stop(final Task onCompleted) { getDispatchQueue().execute(new Task() { public void run() { if (_serviceState == STARTED) { final STOPPING state = new STOPPING(); state.add(onCompleted); _serviceState = state; _stop(new Task() { public void run() { _serviceState = STOPPED; state.done(); } }); } else if (_serviceState instanceof STOPPING) { ((STOPPING) _serviceState).add(onCompleted); } else if (_serviceState == STOPPED) { if (onCompleted != null) { onCompleted.run(); } } else { if (onCompleted != null) { onCompleted.run(); } error("stop should not be called from state: " + _serviceState); } } }); }