package com.dronecontrol.droneapi.components;
import static com.google.common.base.Preconditions.checkState;
public class ThreadComponent
{
private boolean stopped = true;
private Thread currentThread;
public void start(Runnable runnable)
{
checkState(stopped, "Already started");
stopped = false;
currentThread = new Thread(runnable);
currentThread.start();
}
public void stop()
{
stopped = true;
}
public void stopAndWait()
{
try
{
stop();
if (currentThread != null)
{
currentThread.join();
}
} catch (InterruptedException e)
{
throw new IllegalStateException("Joining threads was interrupted", e);
}
}
public boolean isStopped()
{
return stopped;
}
}