package io.vertx.example.shell.termcast;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Future;
import io.vertx.example.util.Runner;
import io.vertx.ext.shell.term.TelnetTermOptions;
import io.vertx.ext.shell.term.TermServer;
import java.awt.*;
/**
* @author <a href="mailto:julien@julienviet.com">Julien Viet</a>
*/
public class TermCast extends AbstractVerticle {
// Convenience method so you can run it in your IDE
public static void main(String[] args) {
Runner.runExample(TermCast.class);
}
private TermServer termServer;
@Override
public void start(Future<Void> startFuture) throws Exception {
termServer = TermServer.createTelnetTermServer(vertx, new TelnetTermOptions().setHost("localhost").setPort(3000).setInBinary(false));
Robot robot = new Robot();
termServer.termHandler(term -> {
new ScreenCaster(vertx, robot, term).handle();
});
termServer.listen(ar -> {
if (ar.succeeded()) {
startFuture.complete();
} else {
startFuture.fail(ar.cause());
}
});
}
@Override
public void stop() throws Exception {
termServer.close();
}
}