|  | package com.facebook.thrift.test; | 
|  |  | 
|  | import com.facebook.thrift.types.*; | 
|  | import com.facebook.thrift.protocol.TBinaryProtocol; | 
|  | import com.facebook.thrift.protocol.TProtocol; | 
|  | import com.facebook.thrift.protocol.TString; | 
|  | import com.facebook.thrift.server.TServer; | 
|  | import com.facebook.thrift.server.TSimpleServer; | 
|  | import com.facebook.thrift.transport.TServerSocket; | 
|  | import com.facebook.thrift.transport.TServerTransport; | 
|  |  | 
|  | import ThriftTest.*; | 
|  |  | 
|  | import java.net.ServerSocket; | 
|  | import java.util.ArrayList; | 
|  | import java.util.HashMap; | 
|  | import java.util.HashSet; | 
|  |  | 
|  | public class TestServer extends ThriftTestServerIf { | 
|  | public TestServer(TProtocol prot) { | 
|  | super(prot); | 
|  | } | 
|  |  | 
|  | public void testVoid() { | 
|  | System.out.print("testVoid()\n"); | 
|  | } | 
|  |  | 
|  | public TString testString(TString thing) { | 
|  | System.out.print("testString(\"" + thing.value + "\")\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public UInt8 testByte(UInt8 thing) { | 
|  | System.out.print("testByte(" + thing.get() + ")\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public Int32 testI32(Int32 thing) { | 
|  | System.out.print("testI32(" + thing.get() + ")\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public Int64 testI64(Int64 thing) { | 
|  | System.out.print("testI64(" + thing.get() + ")\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public Xtruct testStruct(Xtruct thing) { | 
|  | System.out.print("testStruct({" + | 
|  | "\"" + thing.string_thing.value + "\", " + | 
|  | thing.byte_thing.get() + ", " + | 
|  | thing.i32_thing.get() + ", " + | 
|  | thing.i64_thing.get() + "})\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public Xtruct2 testNest(Xtruct2 nest) { | 
|  | Xtruct thing = nest.struct_thing; | 
|  | System.out.print("testNest({" + | 
|  | nest.byte_thing.get() + ", {" + | 
|  | "\"" + thing.string_thing.value + "\", " + | 
|  | thing.byte_thing.get() + ", " + | 
|  | thing.i32_thing.get() + ", " + | 
|  | thing.i64_thing.get() + "}, " + | 
|  | nest.i32_thing.get() + "})\n"); | 
|  | return nest; | 
|  | } | 
|  |  | 
|  | public HashMap<Int32,Int32> testMap(HashMap<Int32,Int32> thing) { | 
|  | System.out.print("testMap({"); | 
|  | boolean first = true; | 
|  | for (Int32 key : thing.keySet()) { | 
|  | if (first) { | 
|  | first = false; | 
|  | } else { | 
|  | System.out.print(", "); | 
|  | } | 
|  | System.out.print(key.get() + " => " + thing.get(key).get()); | 
|  | } | 
|  | System.out.print("})\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public HashSet<Int32> testSet(HashSet<Int32> thing) { | 
|  | System.out.print("testSet({"); | 
|  | boolean first = true; | 
|  | for (Int32 elem : thing) { | 
|  | if (first) { | 
|  | first = false; | 
|  | } else { | 
|  | System.out.print(", "); | 
|  | } | 
|  | System.out.print(elem.get()); | 
|  | } | 
|  | System.out.print("})\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public ArrayList<Int32> testList(ArrayList<Int32> thing) { | 
|  | System.out.print("testList({"); | 
|  | boolean first = true; | 
|  | for (Int32 elem : thing) { | 
|  | if (first) { | 
|  | first = false; | 
|  | } else { | 
|  | System.out.print(", "); | 
|  | } | 
|  | System.out.print(elem.get()); | 
|  | } | 
|  | System.out.print("})\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public Int32 testEnum(Int32 thing) { | 
|  | System.out.print("testEnum(" + thing.get() + ")\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public Int64 testTypedef(Int64 thing) { | 
|  | System.out.print("testTypedef(" + thing.get() + ")\n"); | 
|  | return thing; | 
|  | } | 
|  |  | 
|  | public HashMap<Int32,HashMap<Int32,Int32>> testMapMap(Int32 hello) { | 
|  | System.out.print("testMapMap(" + hello.get() + ")\n"); | 
|  | HashMap<Int32,HashMap<Int32,Int32>> mapmap = | 
|  | new HashMap<Int32,HashMap<Int32,Int32>>(); | 
|  |  | 
|  | HashMap<Int32,Int32> pos = new HashMap<Int32,Int32>(); | 
|  | HashMap<Int32,Int32> neg = new HashMap<Int32,Int32>(); | 
|  | for (int i = 1; i < 5; i++) { | 
|  | pos.put(new Int32(i), new Int32(i)); | 
|  | neg.put(new Int32(-i), new Int32(-i)); | 
|  | } | 
|  |  | 
|  | mapmap.put(new Int32(4), pos); | 
|  | mapmap.put(new Int32(-4), neg); | 
|  |  | 
|  | return mapmap; | 
|  | } | 
|  |  | 
|  | public HashMap<Int64, HashMap<Int32,Insanity>> testInsanity(Insanity argument) { | 
|  | System.out.print("testInsanity()\n"); | 
|  |  | 
|  | Xtruct hello = new Xtruct(); | 
|  | hello.string_thing.value = "Hello2"; | 
|  | hello.byte_thing.set((short)2); | 
|  | hello.i32_thing.set(2); | 
|  | hello.i64_thing.set(2); | 
|  |  | 
|  | Xtruct goodbye = new Xtruct(); | 
|  | goodbye.string_thing.value = "Goodbye4"; | 
|  | goodbye.byte_thing.set((short)4); | 
|  | goodbye.i32_thing.set(4); | 
|  | goodbye.i64_thing.set(4); | 
|  |  | 
|  | Insanity crazy = new Insanity(); | 
|  | crazy.userMap.put(Numberz.EIGHT, new Int64(8)); | 
|  | crazy.xtructs.add(goodbye); | 
|  |  | 
|  | Insanity looney = new Insanity(); | 
|  | crazy.userMap.put(Numberz.FIVE, new Int64(5)); | 
|  | crazy.xtructs.add(hello); | 
|  |  | 
|  | HashMap<Int32,Insanity> first_map = new HashMap<Int32, Insanity>(); | 
|  | HashMap<Int32,Insanity> second_map = new HashMap<Int32, Insanity>();; | 
|  |  | 
|  | first_map.put(Numberz.TWO, crazy); | 
|  | first_map.put(Numberz.THREE, crazy); | 
|  |  | 
|  | second_map.put(Numberz.SIX, looney); | 
|  |  | 
|  | HashMap<Int64,HashMap<Int32,Insanity>> insane = | 
|  | new HashMap<Int64, HashMap<Int32,Insanity>>(); | 
|  | insane.put(new Int64(1), first_map); | 
|  | insane.put(new Int64(2), second_map); | 
|  |  | 
|  | return insane; | 
|  | } | 
|  |  | 
|  | public static void main(String [] args) { | 
|  | try { | 
|  | int port = 9090; | 
|  | if (args.length > 1) { | 
|  | port = Integer.valueOf(args[0]); | 
|  | } | 
|  |  | 
|  | // Processor | 
|  | TBinaryProtocol binaryProtocol = new TBinaryProtocol(); | 
|  | TestServer testServer = new TestServer(binaryProtocol); | 
|  |  | 
|  | // Options | 
|  | TServer.Options serverOptions = new TServer.Options(); | 
|  |  | 
|  | // Transport | 
|  | ServerSocket serverSocket = new ServerSocket(port); | 
|  | TServerSocket tServerSocket = new TServerSocket(serverSocket); | 
|  |  | 
|  | // Server | 
|  | TSimpleServer simpleServer = new TSimpleServer(testServer, | 
|  | serverOptions, | 
|  | tServerSocket); | 
|  |  | 
|  | // Run it | 
|  | System.out.println("Starting the server on port " + port + "..."); | 
|  | simpleServer.run(); | 
|  | } catch (Exception x) { | 
|  | x.printStackTrace(); | 
|  | } | 
|  | System.out.println("done."); | 
|  | } | 
|  | } |