package kubach.workers;
import java.util.List;
import javax.swing.SwingWorker;
import kubach.gui.MainFrame;
import kubach.workers.ProcessMonitorWorker.ProcessState;
/**
* Worker which waiting for process termination and returns exit code
*
* @author Cr0s
*/
public class ProcessMonitorWorker extends SwingWorker<Void, ProcessState> {
private MainFrame nbf;
private Process proc;
public ProcessMonitorWorker(MainFrame nbf, Process proc) {
this.nbf = nbf;
this.proc = proc;
}
@Override
protected Void doInBackground() {
try {
publish (new ProcessState(proc.waitFor()));
} catch (InterruptedException ex) {
ex.printStackTrace();
}
return null;
}
@Override
protected void process(List<ProcessState> chunks) {
for (ProcessState s : chunks) {
nbf.parseProcessState(s);
}
}
public class ProcessState {
public int exitCode;
public ProcessState(int exitCode) {
this.exitCode = exitCode;
}
}
}