blob: 178f4df8b7b3c9cd96431513f10be75d03f87135 [file] [log] [blame]
Mark Sleee8540632006-05-30 09:24:40 +00001enum Numberz
2{
3 ONE = 1,
4 TWO,
5 THREE,
6 FIVE = 5,
7 SIX,
8 EIGHT = 8
9}
10
Mark Slee6e536442006-06-30 18:28:50 +000011typedef i64 UserId
Mark Sleee8540632006-05-30 09:24:40 +000012
13struct Xtruct
14{
15 string string_thing = 0,
16 byte byte_thing = 1,
Mark Sleee8540632006-05-30 09:24:40 +000017 i32 i32_thing = 3,
Mark Sleee8540632006-05-30 09:24:40 +000018 i64 i64_thing = 5
19}
20
21struct Xtruct2
22{
Marc Slemko0b4ffa92006-08-11 02:49:29 +000023 byte byte_thing,
24 Xtruct struct_thing,
25 i32 i32_thing
Mark Sleee8540632006-05-30 09:24:40 +000026}
27
28struct Insanity
29{
30 map<Numberz, UserId> userMap = 0,
Marc Slemkoe6889de2006-08-12 00:32:53 +000031 list<Xtruct> xtructs = 1
Mark Sleee8540632006-05-30 09:24:40 +000032}
33
Marc Slemkod8b10512006-08-14 23:30:37 +000034exception Exception {
35 u32 errorCode,
36 string message
37}
38
39exception Xception {
40 u32 errorCode,
41 Xtruct struct_thing
42}
43
Marc Slemko5b126d62006-08-11 23:03:42 +000044struct Empty {}
Marc Slemkod8b10512006-08-14 23:30:37 +000045struct OneField {
46 Empty field
47}
Marc Slemko5b126d62006-08-11 23:03:42 +000048
Mark Sleee8540632006-05-30 09:24:40 +000049service ThriftTest
50{
Marc Slemkod8b10512006-08-14 23:30:37 +000051 void testVoid(),
52 string testString(string thing = 0),
53 byte testByte(byte thing = 0),
54 i32 testI32(i32 thing = 0),
55 i64 testI64(i64 thing = 0),
56 Xtruct testStruct(Xtruct thing = 0),
57 Xtruct2 testNest(Xtruct2 thing = 0),
58 map<i32,i32> testMap(map<i32,i32> thing = 0),
59 set<i32> testSet(set<i32> thing = 0),
60 list<i32> testList(list<i32> thing = 0),
61 Numberz testEnum(Numberz thing = 0),
62 UserId testTypedef(UserId thing = 0),
Mark Sleee8540632006-05-30 09:24:40 +000063
Marc Slemkod8b10512006-08-14 23:30:37 +000064 map<i32,map<i32,i32>> testMapMap(i32 hello = 0),
Mark Sleee8540632006-05-30 09:24:40 +000065
66 /* So you think you've got this all worked, out eh? */
Marc Slemkod8b10512006-08-14 23:30:37 +000067 map<UserId, map<Numberz,Insanity>> testInsanity(Insanity argument = 0),
68
69 /* Multiple parameters */
Marc Slemko0b4ffa92006-08-11 02:49:29 +000070
Marc Slemkod8b10512006-08-14 23:30:37 +000071 Xtruct testMulti(byte arg0, i32 arg1, u64 arg2, map<i16, string> arg3, Numberz arg4, UserId arg5),
72
73 /* Exception specifier */
74
75 Xtruct testException(string arg) throws(Exception err1),
76
77 /* Multiple exceptions specifier */
78
79 Xtruct testMultiException(string arg0, string arg1) throws(Exception err1=1, Xception err2)
Mark Sleee8540632006-05-30 09:24:40 +000080}