public static bool Execute(string[] args) { try { bool useBufferedSockets = false, useFramed = false, useEncryption = false, compact = false, json = false; ServerType serverType = ServerType.TSimpleServer; ProcessorFactoryType processorFactoryType = ProcessorFactoryType.TSingletonProcessorFactory; int port = 9090; string pipe = null; for (int i = 0; i < args.Length; i++) { if (args[i] == "-pipe") // -pipe name { pipe = args[++i]; } else if (args[i].Contains("--port=")) { port = int.Parse(args[i].Substring(args[i].IndexOf("=") + 1)); } else if (args[i] == "-b" || args[i] == "--buffered" || args[i] == "--transport=buffered") { useBufferedSockets = true; } else if (args[i] == "-f" || args[i] == "--framed" || args[i] == "--transport=framed") { useFramed = true; } else if (args[i] == "--compact" || args[i] == "--protocol=compact") { compact = true; } else if (args[i] == "--json" || args[i] == "--protocol=json") { json = true; } else if (args[i] == "--threaded" || args[i] == "--server-type=threaded") { serverType = ServerType.TThreadedServer; } else if (args[i] == "--threadpool" || args[i] == "--server-type=threadpool") { serverType = ServerType.TThreadPoolServer; } else if (args[i] == "--prototype" || args[i] == "--processor=prototype") { processorFactoryType = ProcessorFactoryType.TPrototypeProcessorFactory; } else if (args[i] == "--ssl") { useEncryption = true; } } // Transport TServerTransport trans; if (pipe != null) { trans = new TNamedPipeServerTransport(pipe); } else { if (useEncryption) { string certPath = "../../../../test/keys/server.p12"; trans = new TTLSServerSocket(port, 0, useBufferedSockets, new X509Certificate2(certPath, "thrift"), null, null, SslProtocols.Tls); } else { trans = new TServerSocket(port, 0, useBufferedSockets); } } TProtocolFactory proto; if (compact) proto = new TCompactProtocol.Factory(); else if (json) proto = new TJSONProtocol.Factory(); else proto = new TBinaryProtocol.Factory(); TProcessorFactory processorFactory; if (processorFactoryType == ProcessorFactoryType.TPrototypeProcessorFactory) { processorFactory = new TPrototypeProcessorFactory<ThriftTest.Processor, TestHandler>(); } else { // Processor TestHandler testHandler = new TestHandler(); ThriftTest.Processor testProcessor = new ThriftTest.Processor(testHandler); processorFactory = new TSingletonProcessorFactory(testProcessor); } TTransportFactory transFactory; if (useFramed) transFactory = new TFramedTransport.Factory(); else transFactory = new TTransportFactory(); TServer serverEngine; switch (serverType) { case ServerType.TThreadPoolServer: serverEngine = new TThreadPoolServer(processorFactory, trans, transFactory, proto); break; case ServerType.TThreadedServer: serverEngine = new TThreadedServer(processorFactory, trans, transFactory, proto); break; default: serverEngine = new TSimpleServer(processorFactory, trans, transFactory, proto); break; } //Server event handler TradeServerEventHandler serverEvents = new TradeServerEventHandler(); serverEngine.setEventHandler(serverEvents); // Run it string where = (pipe != null ? "on pipe " + pipe : "on port " + port); Console.WriteLine("Starting the " + serverType.ToString() + " " + where + (processorFactoryType == ProcessorFactoryType.TPrototypeProcessorFactory ? " with processor prototype factory " : "") + (useBufferedSockets ? " with buffered socket" : "") + (useFramed ? " with framed transport" : "") + (useEncryption ? " with encryption" : "") + (compact ? " with compact protocol" : "") + (json ? " with json protocol" : "") + "..."); serverEngine.Serve(); } catch (Exception x) { Console.Error.Write(x); return false; } Console.WriteLine("done."); return true; }
public static bool Execute(string[] args) { try { bool useBufferedSockets = false, useFramed = false, useEncryption = false, compact = false, json = false; ServerType serverType = ServerType.TSimpleServer; ProcessorFactoryType processorFactoryType = ProcessorFactoryType.TSingletonProcessorFactory; int port = 9090; string pipe = null; for (int i = 0; i < args.Length; i++) { if (args[i] == "-pipe") // -pipe name { pipe = args[++i]; } else if (args[i].Contains("--port=")) { port = int.Parse(args[i].Substring(args[i].IndexOf("=") + 1)); } else if (args[i] == "-b" || args[i] == "--buffered" || args[i] == "--transport=buffered") { useBufferedSockets = true; } else if (args[i] == "-f" || args[i] == "--framed" || args[i] == "--transport=framed") { useFramed = true; } else if (args[i] == "--compact" || args[i] == "--protocol=compact") { compact = true; } else if (args[i] == "--json" || args[i] == "--protocol=json") { json = true; } else if (args[i] == "--threaded" || args[i] == "--server-type=threaded") { serverType = ServerType.TThreadedServer; } else if (args[i] == "--threadpool" || args[i] == "--server-type=threadpool") { serverType = ServerType.TThreadPoolServer; } else if (args[i] == "--prototype" || args[i] == "--processor=prototype") { processorFactoryType = ProcessorFactoryType.TPrototypeProcessorFactory; } else if (args[i] == "--ssl") { useEncryption = true; } } // Transport TServerTransport trans; if (pipe != null) { trans = new TNamedPipeServerTransport(pipe); } else { if (useEncryption) { string certPath = "../keys/server.p12"; trans = new TTLSServerSocket(port, 0, useBufferedSockets, new X509Certificate2(certPath, "thrift"), null, null, SslProtocols.Tls); } else { trans = new TServerSocket(port, 0, useBufferedSockets); } } TProtocolFactory proto; if (compact) { proto = new TCompactProtocol.Factory(); } else if (json) { proto = new TJSONProtocol.Factory(); } else { proto = new TBinaryProtocol.Factory(); } TProcessorFactory processorFactory; if (processorFactoryType == ProcessorFactoryType.TPrototypeProcessorFactory) { processorFactory = new TPrototypeProcessorFactory <ThriftTest.Processor, TestHandler>(); } else { // Processor TestHandler testHandler = new TestHandler(); ThriftTest.Processor testProcessor = new ThriftTest.Processor(testHandler); processorFactory = new TSingletonProcessorFactory(testProcessor); } TTransportFactory transFactory; if (useFramed) { transFactory = new TFramedTransport.Factory(); } else { transFactory = new TTransportFactory(); } TServer serverEngine; switch (serverType) { case ServerType.TThreadPoolServer: serverEngine = new TThreadPoolServer(processorFactory, trans, transFactory, proto); break; case ServerType.TThreadedServer: serverEngine = new TThreadedServer(processorFactory, trans, transFactory, proto); break; default: serverEngine = new TSimpleServer(processorFactory, trans, transFactory, proto); break; } //Server event handler TradeServerEventHandler serverEvents = new TradeServerEventHandler(); serverEngine.setEventHandler(serverEvents); // Run it string where = (pipe != null ? "on pipe " + pipe : "on port " + port); Console.WriteLine("Starting the " + serverType.ToString() + " " + where + (processorFactoryType == ProcessorFactoryType.TPrototypeProcessorFactory ? " with processor prototype factory " : "") + (useBufferedSockets ? " with buffered socket" : "") + (useFramed ? " with framed transport" : "") + (useEncryption ? " with encryption" : "") + (compact ? " with compact protocol" : "") + (json ? " with json protocol" : "") + "..."); serverEngine.Serve(); } catch (Exception x) { Console.Error.Write(x); return(false); } Console.WriteLine("done."); return(true); }
public static void Execute(string[] args) { try { bool useBufferedSockets = false, useFramed = false, useEncryption = false, compact = false, json = false; int port = 9090; string pipe = null; for (int i = 0; i < args.Length; i++) { if (args[i] == "-pipe") // -pipe name { pipe = args[++i]; } else if (args[i].Contains("--port=")) { port = int.Parse(args[i].Substring(args[i].IndexOf("=")+1)); } else if (args[i] == "-b" || args[i] == "--buffered" || args[i] == "--transport=buffered") { useBufferedSockets = true; } else if (args[i] == "-f" || args[i] == "--framed" || args[i] == "--transport=framed") { useFramed = true; } else if (args[i] == "--compact" || args[i] == "--protocol=compact") { compact = true; } else if (args[i] == "--json" || args[i] == "--protocol=json") { json = true; } else if (args[i] == "--ssl") { useEncryption = true; } } // Processor TestHandler testHandler = new TestHandler(); ThriftTest.Processor testProcessor = new ThriftTest.Processor(testHandler); // Transport TServerTransport trans; if( pipe != null) { trans = new TNamedPipeServerTransport(pipe); } else { if (useEncryption) { trans = new TTLSServerSocket(port, 0, useBufferedSockets, new X509Certificate2("../../../../../keys/server.pem")); } else { trans = new TServerSocket(port, 0, useBufferedSockets); } } TProtocolFactory proto; if ( compact ) proto = new TCompactProtocol.Factory(); else if ( json ) proto = new TJSONProtocol.Factory(); else proto = new TBinaryProtocol.Factory(); // Simple Server TServer serverEngine; if ( useFramed ) serverEngine = new TSimpleServer(testProcessor, trans, new TFramedTransport.Factory(), proto); else serverEngine = new TSimpleServer(testProcessor, trans, new TTransportFactory(), proto); // ThreadPool Server // serverEngine = new TThreadPoolServer(testProcessor, tServerSocket); // Threaded Server // serverEngine = new TThreadedServer(testProcessor, tServerSocket); //Server event handler TradeServerEventHandler serverEvents = new TradeServerEventHandler(); serverEngine.setEventHandler(serverEvents); testHandler.server = serverEngine; // Run it string where = ( pipe != null ? "on pipe "+pipe : "on port " + port); Console.WriteLine("Starting the server " + where + (useBufferedSockets ? " with buffered socket" : "") + (useFramed ? " with framed transport" : "") + (useEncryption ? " with encryption" : "") + (compact ? " with compact protocol" : "") + (json ? " with json protocol" : "") + "..."); serverEngine.Serve(); } catch (Exception x) { Console.Error.Write(x); } Console.WriteLine("done."); }
} // class TestHandler public static bool Execute(string[] args) { try { bool useBufferedSockets = false, useFramed = false, useEncryption = false, compact = false, json = false; int port = 9090; string pipe = null; string certPath = "../../../../../keys/server.pem"; for (int i = 0; i < args.Length; i++) { if (args[i] == "-pipe") // -pipe name { pipe = args[++i]; } else if (args[i].Contains("--port=")) { port = int.Parse(args[i].Substring(args[i].IndexOf("=") + 1)); } else if (args[i] == "-b" || args[i] == "--buffered" || args[i] == "--transport=buffered") { useBufferedSockets = true; } else if (args[i] == "-f" || args[i] == "--framed" || args[i] == "--transport=framed") { useFramed = true; } else if (args[i] == "--compact" || args[i] == "--protocol=compact") { compact = true; } else if (args[i] == "--json" || args[i] == "--protocol=json") { json = true; } else if (args[i] == "--ssl") { useEncryption = true; } else if (args[i].StartsWith("--cert=")) { certPath = args[i].Substring("--cert=".Length); } } // Processor TestHandler testHandler = new TestHandler(); ThriftTest.Processor testProcessor = new ThriftTest.Processor(testHandler); // Transport TServerTransport trans; if (pipe != null) { trans = new TNamedPipeServerTransport(pipe); } else { if (useEncryption) { trans = new TTLSServerSocket(port, 0, useBufferedSockets, new X509Certificate2(certPath)); } else { trans = new TServerSocket(port, 0, useBufferedSockets); } } TProtocolFactory proto; if (compact) { proto = new TCompactProtocol.Factory(); } else if (json) { proto = new TJSONProtocol.Factory(); } else { proto = new TBinaryProtocol.Factory(); } // Simple Server TServer serverEngine; if (useFramed) { serverEngine = new TSimpleServer(testProcessor, trans, new TFramedTransport.Factory(), proto); } else { serverEngine = new TSimpleServer(testProcessor, trans, new TTransportFactory(), proto); } // ThreadPool Server // serverEngine = new TThreadPoolServer(testProcessor, tServerSocket); // Threaded Server // serverEngine = new TThreadedServer(testProcessor, tServerSocket); //Server event handler TradeServerEventHandler serverEvents = new TradeServerEventHandler(); serverEngine.setEventHandler(serverEvents); testHandler.server = serverEngine; // Run it string where = (pipe != null ? "on pipe " + pipe : "on port " + port); Console.WriteLine("Starting the server " + where + (useBufferedSockets ? " with buffered socket" : "") + (useFramed ? " with framed transport" : "") + (useEncryption ? " with encryption" : "") + (compact ? " with compact protocol" : "") + (json ? " with json protocol" : "") + "..."); serverEngine.Serve(); } catch (Exception x) { Console.Error.Write(x); return(false); } Console.WriteLine("done."); return(true); }