thrift/test/ocaml/server/TestServer.ml
David Reiss 0c90f6f8af Thrift: Whitespace cleanup.
Summary:
- Expanded tabs to spaces where spaces were the norm.
- Deleted almost all trailing whitespace.
- Added newlines to the ends of a few files.
- Ran dos2unix on one file or two.

Reviewed By: mcslee

Test Plan: git diff -b

Revert Plan: ok


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665467 13f79535-47bb-0310-9956-ffa450edef68
2008-02-06 22:18:40 +00:00

116 lines
3.5 KiB
OCaml

open Thrift
open ThriftTest_types
let p = Printf.printf;;
exception Die;;
let sod = function
Some v -> v
| None -> raise Die;;
class test_handler =
object (self)
inherit ThriftTest.iface
method testVoid = p "testVoid()\n"
method testString x = p "testString(%s)\n" (sod x); (sod x)
method testByte x = p "testByte(%d)\n" (sod x); (sod x)
method testI32 x = p "testI32(%d)\n" (sod x); (sod x)
method testI64 x = p "testI64(%s)\n" (Int64.to_string (sod x)); (sod x)
method testDouble x = p "testDouble(%f)\n" (sod x); (sod x)
method testStruct x = p "testStruct(---)\n"; (sod x)
method testNest x = p "testNest(---)\n"; (sod x)
method testMap x = p "testMap(---)\n"; (sod x)
method testSet x = p "testSet(---)\n"; (sod x)
method testList x = p "testList(---)\n"; (sod x)
method testEnum x = p "testEnum(---)\n"; (sod x)
method testTypedef x = p "testTypedef(---)\n"; (sod x)
method testMapMap x = p "testMapMap(%d)\n" (sod x);
let mm = Hashtbl.create 3 in
let pos = Hashtbl.create 7 in
let neg = Hashtbl.create 7 in
for i=1 to 4 do
Hashtbl.add pos i i;
Hashtbl.add neg (-i) (-i);
done;
Hashtbl.add mm 4 pos;
Hashtbl.add mm (-4) neg;
mm
method testInsanity x = p "testInsanity()\n";
p "testinsanity()\n";
let hello = new xtruct in
let goodbye = new xtruct in
let crazy = new insanity in
let looney = new insanity in
let cumap = Hashtbl.create 7 in
let insane = Hashtbl.create 7 in
let firstmap = Hashtbl.create 7 in
let secondmap = Hashtbl.create 7 in
hello#set_string_thing "Hello2";
hello#set_byte_thing 2;
hello#set_i32_thing 2;
hello#set_i64_thing 2L;
goodbye#set_string_thing "Goodbye4";
goodbye#set_byte_thing 4;
goodbye#set_i32_thing 4;
goodbye#set_i64_thing 4L;
Hashtbl.add cumap Numberz.EIGHT 8L;
Hashtbl.add cumap Numberz.FIVE 5L;
crazy#set_userMap cumap;
crazy#set_xtructs [goodbye; hello];
Hashtbl.add firstmap Numberz.TWO crazy;
Hashtbl.add firstmap Numberz.THREE crazy;
Hashtbl.add secondmap Numberz.SIX looney;
Hashtbl.add insane 1L firstmap;
Hashtbl.add insane 2L secondmap;
insane
method testMulti a0 a1 a2 a3 a4 a5 =
p "testMulti()\n";
let hello = new xtruct in
hello#set_string_thing "Hello2";
hello#set_byte_thing (sod a0);
hello#set_i32_thing (sod a1);
hello#set_i64_thing (sod a2);
hello
method testException s =
p "testException(%S)\n" (sod s);
if (sod s) = "Xception" then
let x = new xception in
x#set_errorCode 1001;
x#set_message "This is an Xception";
raise (Xception x)
else ()
method testMultiException a0 a1 =
p "testMultiException(%S, %S)\n" (sod a0) (sod a1);
if (sod a0) = "Xception" then
let x = new xception in
x#set_errorCode 1001;
x#set_message "This is an Xception";
raise (Xception x)
else (if (sod a0) = "Xception2" then
let x = new xception2 in
let s = new xtruct in
x#set_errorCode 2002;
s#set_string_thing "This as an Xception2";
x#set_struct_thing s;
raise (Xception2 x)
else ());
let res = new xtruct in
res#set_string_thing (sod a1);
res
end;;
let h = new test_handler in
let proc = new ThriftTest.processor h in
let port = 9090 in
let pf = new TBinaryProtocol.factory in
let server = new TThreadedServer.t
proc
(new TServerSocket.t port)
(new Transport.factory)
pf
pf
in
server#serve