package com.twitter.common.examples.pingpong_thrift.server;
import java.util.logging.Logger;
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TSimpleServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TServerTransport;
import org.apache.thrift.transport.TTransportException;
import com.twitter.common.application.AbstractApplication;
import com.twitter.common.application.AppLauncher;
import com.twitter.common.args.Arg;
import com.twitter.common.args.CmdLine;
import com.twitter.common.args.constraints.Range;
import com.twitter.common.examples.pingpong.PingPong;
public class PingPongServer extends AbstractApplication {
private static final Logger LOG = Logger.getLogger(PingPongServer.class.getName());
@Range(lower = 0, upper = 65535)
@CmdLine(name = "thrift_port", help = "Port for thrift to listen on.")
private static final Arg<Integer> THRIFT_PORT = Arg.create(9090);
@Override
public void run() {
PingPongHandler handler = new PingPongHandler();
PingPong.Processor processor = new PingPong.Processor(handler);
TServer server;
try {
TServerTransport transport = new TServerSocket(THRIFT_PORT.get());
server = new TSimpleServer(processor, transport);
} catch (TTransportException e) {
throw new RuntimeException(e);
}
LOG.info("Starting thrift server.");
server.serve();
}
public static void main(String[] args) {
AppLauncher.launch(PingPongServer.class, args);
}
}