package ring.daemons; import java.io.IOException; /** * Launch a daemon as a thread. * @author projectmoon * */ public class DaemonThread { private final Daemon daemon; private Thread daemonThread; public DaemonThread(Daemon daemon) { this.daemon = daemon; } public void start() { Runnable runDaemon = new Runnable() { @Override public void run() { try { daemon.start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; daemonThread = new Thread(runDaemon); daemonThread.start(); } public Thread getThread() { return daemonThread; } public Daemon getDaemon() { return daemon; } public void join() throws IOException, InterruptedException { daemon.stop(); daemonThread.join(); } }