+++ /dev/null
-/*
- * 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 org.apache.thrift.helper.*;
-
-import haxe.Int32;
-import haxe.Int64;
-import haxe.io.Bytes;
-import haxe.ds.IntMap;
-import haxe.ds.StringMap;
-import haxe.ds.ObjectMap;
-
-import thrift.test.*; // generated code
-
-
-class TestServerHandler implements ThriftTest {
-
- public var server:TServer;
-
- public function new() {
- }
-
- /**
- * Prints "testVoid()" and returns nothing.
- */
- public function testVoid():Void
- {
- trace("testVoid()");
- }
-
- /**
- * Prints 'testBool("%s")' where '%s' with thing as 'true' or 'false'
- * @param bool thing - the bool data to print
- * @return bool - returns the bool 'thing'
- *
- * @param thing
- */
- public function testBool(thing : Bool) : Bool
- {
- trace('testBool($thing)');
- return thing;
- }
-
- /**
- * Prints 'testString("%s")' with thing as '%s'
- * @param string thing - the string to print
- * @return string - returns the string 'thing'
- *
- * @param thing
- */
- public function testString(thing:String):String
- {
- trace("teststring(\"" + thing + "\")");
- return thing;
- }
-
- /**
- * Prints 'testByte("%d")' with thing as '%d'
- * @param byte thing - the byte to print
- * @return byte - returns the byte 'thing'
- *
- * @param thing
- */
- public function testByte(thing:haxe.Int32):haxe.Int32
- {
- trace("testByte(" + thing + ")");
- return thing;
- }
-
- /**
- * Prints 'testI32("%d")' with thing as '%d'
- * @param i32 thing - the i32 to print
- * @return i32 - returns the i32 'thing'
- *
- * @param thing
- */
- public function testI32(thing:haxe.Int32):haxe.Int32
- {
- trace("testI32(" + thing + ")");
- return thing;
- }
-
- /**
- * Prints 'testI64("%d")' with thing as '%d'
- * @param i64 thing - the i64 to print
- * @return i64 - returns the i64 'thing'
- *
- * @param thing
- */
- public function testI64(thing:haxe.Int64):haxe.Int64
- {
- trace("testI64(" + thing + ")");
- return thing;
- }
-
- /**
- * Prints 'testDouble("%f")' with thing as '%f'
- * @param double thing - the double to print
- * @return double - returns the double 'thing'
- *
- * @param thing
- */
- public function testDouble(thing:Float):Float
- {
- trace("testDouble(" + thing + ")");
- return thing;
- }
-
- /**
- * Prints 'testBinary("%s")' where '%s' is a hex-formatted string of thing's data
- * @param binary thing - the binary data to print
- * @return binary - returns the binary 'thing'
- *
- * @param thing
- */
- public function testBinary(thing : haxe.io.Bytes) : haxe.io.Bytes
- {
- var hex = "";
- for ( i in 0 ... thing.length) {
- hex += StringTools.hex( thing.get(i), 2);
- }
- trace('testBinary($hex)');
- return thing;
- }
-
- /**
- * Prints 'testStruct("{%s}")' where thing has been formatted
- * into a string of comma separated values
- * @param Xtruct thing - the Xtruct to print
- * @return Xtruct - returns the Xtruct 'thing'
- *
- * @param thing
- */
- public function testStruct(thing:Xtruct):Xtruct
- {
- trace("testStruct({" +
- "\"" + thing.string_thing + "\", " +
- thing.byte_thing + ", " +
- thing.i32_thing + ", " +
- Int64.toStr(thing.i64_thing) + "})");
- return thing;
- }
-
- /**
- * Prints 'testNest("{%s}")' where thing has been formatted
- * into a string of the nested struct
- * @param Xtruct2 thing - the Xtruct2 to print
- * @return Xtruct2 - returns the Xtruct2 'thing'
- *
- * @param thing
- */
- public function testNest(nest:Xtruct2):Xtruct2
- {
- var thing:Xtruct = nest.struct_thing;
- trace("testNest({" +
- nest.byte_thing + ", {" +
- "\"" + thing.string_thing + "\", " +
- thing.byte_thing + ", " +
- thing.i32_thing + ", " +
- Int64.toStr(thing.i64_thing) + "}, " +
- nest.i32_thing + "})");
- return nest;
- }
-
- /**
- * Prints 'testMap("{%s")' where thing has been formatted
- * into a string of 'key => value' pairs
- * separated by commas and new lines
- * @param map<i32,i32> thing - the map<i32,i32> to print
- * @return map<i32,i32> - returns the map<i32,i32> 'thing'
- *
- * @param thing
- */
- public function testMap(thing:IntMap<haxe.Int32>):IntMap<haxe.Int32>
- {
- trace("testMap({");
- var first:Bool = true;
- for (key in thing.keys()) {
- if (first) {
- first = false;
- } else {
- trace(", ");
- };
- trace(key + " => " + thing.get(key));
- };
- trace("})");
- return thing;
- }
-
- /**
- * Prints 'testStringMap("{%s}")' where thing has been formatted
- * into a string of 'key => value' pairs
- * separated by commas and new lines
- * @param map<string,string> thing - the map<string,string> to print
- * @return map<string,string> - returns the map<string,string> 'thing'
- *
- * @param thing
- */
- public function testStringMap(thing:StringMap<String>):StringMap<String>
- {
- trace("testStringMap({");
- var first:Bool = true;
- for (key in thing.keys()) {
- if (first) {
- first = false;
- } else {
- trace(", ");
- };
- trace(key + " => " + thing.get(key));
- };
- trace("})");
- return thing;
- }
-
- /**
- * Prints 'testSet("{%s}")' where thing has been formatted
- * into a string of values
- * separated by commas and new lines
- * @param set<i32> thing - the set<i32> to print
- * @return set<i32> - returns the set<i32> 'thing'
- *
- * @param thing
- */
- public function testSet(thing:IntSet):IntSet
- {
- trace("testSet({");
- var first:Bool = true;
- for (elem in thing) {
- if (first) {
- first = false;
- } else {
- trace(", ");
- };
- trace(elem);
- };
- trace("})");
- return thing;
- }
-
- /**
- * Prints 'testList("{%s}")' where thing has been formatted
- * into a string of values
- * separated by commas and new lines
- * @param list<i32> thing - the list<i32> to print
- * @return list<i32> - returns the list<i32> 'thing'
- *
- * @param thing
- */
- public function testList(thing:List<haxe.Int32>):List<haxe.Int32>
- {
- trace("testList({");
- var first:Bool = true;
- for (elem in thing) {
- if (first) {
- first = false;
- } else {
- trace(", ");
- };
- trace(elem);
- };
- trace("})");
- return thing;
- }
-
- /**
- * Prints 'testEnum("%d")' where thing has been formatted into it's numeric value
- * @param Numberz thing - the Numberz to print
- * @return Numberz - returns the Numberz 'thing'
- *
- * @param thing
- */
- public function testEnum(thing:Int):Int
- {
- trace("testEnum(" + thing + ")");
- return thing;
- }
-
- /**
- * Prints 'testTypedef("%d")' with thing as '%d'
- * @param UserId thing - the UserId to print
- * @return UserId - returns the UserId 'thing'
- *
- * @param thing
- */
- public function testTypedef(thing:haxe.Int64):haxe.Int64
- {
- trace("testTypedef(" + thing + ")");
- return thing;
- }
-
- /**
- * Prints 'testMapMap("%d")' with hello as '%d'
- * @param i32 hello - the i32 to print
- * @return map<i32,map<i32,i32>> - returns a dictionary with these values:
- * {-4 => {-4 => -4, -3 => -3, -2 => -2, -1 => -1, },
- * 4 => {1 => 1, 2 => 2, 3 => 3, 4 => 4, }, }
- *
- * @param hello
- */
- public function testMapMap(hello:haxe.Int32):IntMap<IntMap<haxe.Int32>>
- {
- trace("testMapMap(" + hello + ")");
- var mapmap = new IntMap<IntMap<Int>>();
- var pos = new IntMap<Int>();
- var neg = new IntMap<Int>();
- for (i in 1 ... 5) {
- pos.set(i, i);
- neg.set(-i, -i);
- };
- mapmap.set(4, pos);
- mapmap.set(-4, neg);
- return mapmap;
- }
-
- /**
- * So you think you've got this all worked, out eh?
- *
- * Creates a the returned map with these values and prints it out:
- * { 1 => { 2 => argument,
- * 3 => argument,
- * },
- * 2 => { 6 => <empty Insanity struct>, },
- * }
- * @return map<UserId, map<Numberz,Insanity>> - a map with the above values
- *
- * @param argument
- */
- public function testInsanity(argument : Insanity) : Int64Map< IntMap< Insanity>>
- {
- trace("testInsanity()");
-
- var first_map = new IntMap< Insanity>();
- first_map.set(Numberz.TWO, argument);
- first_map.set(Numberz.THREE, argument);
-
- var second_map = new IntMap< Insanity>();
- var looney = new Insanity();
- second_map.set(Numberz.SIX, looney);
-
- var insane = new Int64Map< IntMap< Insanity>>();
- insane.set( Int64.make(0,1), first_map);
- insane.set( Int64.make(0,2), second_map);
-
- return insane;
- }
-
- /**
- * Prints 'testMulti()'
- * @param byte arg0 -
- * @param i32 arg1 -
- * @param i64 arg2 -
- * @param map<i16, string> arg3 -
- * @param Numberz arg4 -
- * @param UserId arg5 -
- * @return Xtruct - returns an Xtruct
- * with string_thing = "Hello2, byte_thing = arg0, i32_thing = arg1
- * and i64_thing = arg2
- *
- * @param arg0
- * @param arg1
- * @param arg2
- * @param arg3
- * @param arg4
- * @param arg5
- */
- public function testMulti(arg0:haxe.Int32, arg1:haxe.Int32, arg2:haxe.Int64,
- arg3:IntMap<String>, arg4:Int, arg5:haxe.Int64):Xtruct
- {
- trace("testMulti()");
- var hello = new Xtruct();
- hello.string_thing = "Hello2";
- hello.byte_thing = arg0;
- hello.i32_thing = arg1;
- hello.i64_thing = arg2;
- return hello;
- }
-
- /**
- * Print 'testException(%s)' with arg as '%s'
- * @param string arg - a string indication what type of exception to throw
- * if arg == "Xception" throw Xception with errorCode = 1001 and message = arg
- * elsen if arg == "TException" throw TException
- * else do not throw anything
- *
- * @param arg
- */
- public function testException(arg:String):Void
- {
- trace("testException(" + arg + ")");
- if (arg == "Xception") {
- var x = new Xception();
- x.errorCode = 1001;
- x.message = arg;
- throw x;
- };
- if (arg == "TException") {
- throw new TException();
- };
- return;
- }
-
- /**
- * Print 'testMultiException(%s, %s)' with arg0 as '%s' and arg1 as '%s'
- * @param string arg - a string indication what type of exception to throw
- * if arg0 == "Xception"
- * throw Xception with errorCode = 1001 and message = "This is an Xception"
- * else if arg0 == "Xception2"
- * throw Xception2 with errorCode = 2002 and message = "This is an Xception2"
- * else do not throw anything
- * @return Xtruct - an Xtruct with string_thing = arg1
- *
- * @param arg0
- * @param arg1
- */
- public function testMultiException(arg0:String, arg1:String):Xtruct
- {
- trace("testMultiException(" + arg0 + ", " + arg1 + ")");
- if (arg0 == "Xception") {
- var x = new Xception();
- x.errorCode = 1001;
- x.message = "This is an Xception";
- throw x;
- } else if (arg0 == "Xception2") {
- var x = new Xception2();
- x.errorCode = 2002;
- x.struct_thing = new Xtruct();
- x.struct_thing.string_thing = "This is an Xception2";
- throw x;
- };
- var result = new Xtruct();
- result.string_thing = arg1;
- return result;
- }
-
- /**
- * Print 'testOneway(%d): Sleeping...' with secondsToSleep as '%d'
- * sleep 'secondsToSleep'
- * Print 'testOneway(%d): done sleeping!' with secondsToSleep as '%d'
- * @param i32 secondsToSleep - the number of seconds to sleep
- *
- * @param secondsToSleep
- */
- public function testOneway(secondsToSleep:haxe.Int32):Void
- {
- trace("testOneway(" + secondsToSleep + "), sleeping...");
- Sys.sleep(secondsToSleep);
- trace("testOneway finished");
- }
-
- public function testStop():Void
- {
- if (server != null) {
- server.Stop();
- };
- }
-}