/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package; import org.apache.thrift.*; import org.apache.thrift.protocol.*; import org.apache.thrift.transport.*; import org.apache.thrift.server.*; import org.apache.thrift.meta_data.*; import thrift.test.*; // generated code class TestServer { public static function Execute(args : Arguments) : Void { try { // Transport var transport : TServerTransport = null; switch( args.transport) { case socket: trace("- socket port "+args.port); transport = new TServerSocket( args.port); case http: trace("- http"); #if !phpwebserver throw "HTTP server not implemented yet"; //transport = new THttpServer( targetHost); #else transport = new TWrappingServerTransport( new TStreamTransport( new TFileStream("php://input", Read), new TFileStream("php://output", Append) ) ); #end default: throw "Unhandled transport"; } // optional: layered transport var transfactory : TTransportFactory = null; if ( args.framed) { trace("- framed transport"); transfactory = new TFramedTransportFactory(); } if ( args.buffered) { trace("- buffered transport"); transfactory = new TBufferedTransportFactory(); } // protocol var protfactory : TProtocolFactory = null; switch( args.protocol) { case binary: trace("- binary protocol"); protfactory = new TBinaryProtocolFactory(); case json: trace("- json protocol"); protfactory = new TJSONProtocolFactory(); case compact: trace("- compact protocol"); protfactory = new TCompactProtocolFactory(); } // Processor var handler = new TestServerHandler(); var processor = new ThriftTestProcessor(handler); // Simple Server var server : TServer = null; switch( args.servertype) { case simple: var simpleServer = new TSimpleServer( processor, transport, transfactory, protfactory); #if phpwebserver simpleServer.runOnce = true; #end server = simpleServer; default: throw "Unhandled server type"; } /* // Server event handler if( args.serverEvents) { var events = new TestServerEventHandler(); server.setEventHandler(serverEvents); handler.server = serverEngine; } */ // Run it server.Serve(); trace("done."); } catch (x : TException) { trace('$x ${x.errorID} ${x.errorMsg}'); } catch (x : Dynamic) { trace('$x'); } } }