blob: 94b739e295cfafc2b85f5d0aab1fe44bdf6cd5a5 [file] [log] [blame]
Mark Slee83c52a82006-06-07 06:51:18 +00001package com.facebook.thrift.server;
2
3import com.facebook.thrift.TException;
4import com.facebook.thrift.TProcessor;
5import com.facebook.thrift.transport.TServerTransport;
6import com.facebook.thrift.transport.TTransport;
7import com.facebook.thrift.transport.TTransportException;
8
9/**
10 * Simple singlethreaded server for testing.
11 *
12 * @author Mark Slee <mcslee@facebook.com>
13 */
14public class TSimpleServer extends TServer {
15
16 private TServerTransport serverTransport_;
17
18 public TSimpleServer(TProcessor processor,
Mark Sleeffcddd62006-09-06 20:37:03 +000019 TServerTransport serverTransport) {
20 this(processor, new TServer.Options(), serverTransport);
21 }
22
23
24 public TSimpleServer(TProcessor processor,
Mark Slee83c52a82006-06-07 06:51:18 +000025 TServer.Options options,
26 TServerTransport serverTransport) {
27 super(processor, options);
28 serverTransport_ = serverTransport;
29 }
30
31 public void run() {
32 try {
33 serverTransport_.listen();
34 } catch (TTransportException ttx) {
35 ttx.printStackTrace();
36 return;
37 }
38
39 while (true) {
40 TTransport client = null;
41 try {
42 client = serverTransport_.accept();
43 if (client != null) {
44 while (processor_.process(client, client));
45 }
46 } catch (TException tx) {
47 tx.printStackTrace();
48 }
49
50 if (client != null) {
51 client.close();
52 client = null;
53 }
54 }
55 }
56}