package dk.itu.eyedroid.io.threads;
import java.io.IOException;
import dk.itu.eyedroid.io.IORunner;
import dk.itu.spcl.jlpf.io.IOController;
/**
* Writting thread implementation. Implements writer initialization and
* execution from IORunner.
*/
public class WritingThread extends IORunner {
/**
* Default constructor.
*
* @param controller
* IO controller instance
*/
public WritingThread(IOController controller) {
super(controller);
}
/**
* Initialize writer
*/
@Override
public void onInit() throws IOException {
ioController.getOutputWriter().initWriter();
}
/**
* Write into protocol output. In case of excemption is thrown, cleanup and
* initialize again.
*/
@Override
public void onRun() throws IOException {
try {
ioController.write();
} catch (IOException e) {
e.printStackTrace();
ioController.getOutputWriter().cleanupWriter();
ioController.getOutputWriter().initWriter();
}
}
}