Subversion Repositories SmartDukaan

Rev

Rev 30 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
30 ashish 1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one
3
 * or more contributor license agreements. See the NOTICE file
4
 * distributed with this work for additional information
5
 * regarding copyright ownership. The ASF licenses this file
6
 * to you under the Apache License, Version 2.0 (the
7
 * "License"); you may not use this file except in compliance
8
 * with the License. You may obtain a copy of the License at
9
 *
10
 *   http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing,
13
 * software distributed under the License is distributed on an
14
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
 * KIND, either express or implied. See the License for the
16
 * specific language governing permissions and limitations
17
 * under the License.
18
 */
19
 
20
namespace cpp thrift.test.debug
21
namespace java thrift.test
22
 
23
struct Doubles {
24
 1: double nan,
25
 2: double inf,
26
 3: double neginf,
27
 4: double repeating,
28
 5: double big,
29
 6: double small,
30
 7: double zero,
31
 8: double negzero,
32
}
33
 
34
struct OneOfEach {
35
  1: bool im_true,
36
  2: bool im_false,
37
  3: byte a_bite = 200,
38
  4: i16 integer16 = 33000,
39
  5: i32 integer32,
40
  6: i64 integer64 = 10000000000,
41
  7: double double_precision,
42
  8: string some_characters,
43
  9: string zomg_unicode,
44
  10: bool what_who,
45
  11: binary base64,
46
  12: list<byte> byte_list = [1, 2, 3],
47
  13: list<i16> i16_list = [1,2,3],
48
  14: list<i64> i64_list = [1,2,3]
49
}
50
 
51
struct Bonk {
52
  1: i32 type,
53
  2: string message,
54
}
55
 
56
struct Nesting {
57
  1: Bonk my_bonk,
58
  2: OneOfEach my_ooe,
59
}
60
 
61
struct HolyMoley {
62
  1: list<OneOfEach> big,
63
  2: set<list<string>> contain,
64
  3: map<string,list<Bonk>> bonks,
65
}
66
 
67
struct Backwards {
68
  2: i32 first_tag2,
69
  1: i32 second_tag1,
70
}
71
 
72
struct Empty {
73
}
74
 
75
struct Wrapper {
76
  1: Empty foo
77
}
78
 
79
struct RandomStuff {
80
  1: i32 a,
81
  2: i32 b,
82
  3: i32 c,
83
  4: i32 d,
84
  5: list<i32> myintlist,
85
  6: map<i32,Wrapper> maps,
86
  7: i64 bigint,
87
  8: double triple,
88
}
89
 
90
struct Base64 {
91
  1: i32 a,
92
  2: binary b1,
93
  3: binary b2,
94
  4: binary b3,
95
  5: binary b4,
96
  6: binary b5,
97
  7: binary b6,
98
}
99
 
100
struct CompactProtoTestStruct {
101
  // primitive fields
102
  1: byte   a_byte;
103
  2: i16    a_i16;
104
  3: i32    a_i32;
105
  4: i64    a_i64;
106
  5: double a_double;
107
  6: string a_string;
108
  7: binary a_binary;
109
  8: bool   true_field;
110
  9: bool   false_field;
111
  10: Empty empty_struct_field;
112
 
113
  // primitives in lists
114
  11: list<byte>    byte_list;
115
  12: list<i16>     i16_list;
116
  13: list<i32>     i32_list;
117
  14: list<i64>     i64_list;
118
  15: list<double>  double_list;
119
  16: list<string>  string_list;
120
  17: list<binary>  binary_list;
121
  18: list<bool>    boolean_list;
122
  19: list<Empty>   struct_list;
123
 
124
  // primitives in sets
125
  20: set<byte>     byte_set;
126
  21: set<i16>      i16_set;
127
  22: set<i32>      i32_set;
128
  23: set<i64>      i64_set;
129
  24: set<double>   double_set;
130
  25: set<string>   string_set;
131
  26: set<binary>   binary_set;
132
  27: set<bool>     boolean_set;
133
  28: set<Empty>    struct_set;
134
 
135
  // maps
136
  // primitives as keys
137
  29: map<byte, byte>             byte_byte_map;
138
  30: map<i16, byte>              i16_byte_map;
139
  31: map<i32, byte>              i32_byte_map;
140
  32: map<i64, byte>              i64_byte_map;
141
  33: map<double, byte>           double_byte_map;
142
  34: map<string, byte>           string_byte_map;
143
  35: map<binary, byte>           binary_byte_map;
144
  36: map<bool, byte>             boolean_byte_map;
145
  // primitives as values
146
  37: map<byte, i16>              byte_i16_map;
147
  38: map<byte, i32>              byte_i32_map;
148
  39: map<byte, i64>              byte_i64_map;
149
  40: map<byte, double>           byte_double_map;
150
  41: map<byte, string>           byte_string_map;
151
  42: map<byte, binary>           byte_binary_map;
152
  43: map<byte, bool>             byte_boolean_map;
153
  // collections as keys
154
  44: map<list<byte>, byte>       list_byte_map;
155
  45: map<set<byte>, byte>        set_byte_map;
156
  46: map<map<byte,byte>, byte>   map_byte_map;
157
  // collections as values
158
  47: map<byte, map<byte,byte>>   byte_map_map;
159
  48: map<byte, set<byte>>        byte_set_map;
160
  49: map<byte, list<byte>>       byte_list_map;
161
}
162
 
163
 
164
const CompactProtoTestStruct COMPACT_TEST = {
165
  'a_byte'             : 127,
166
  'a_i16'              : 32000,
167
  'a_i32'              : 1000000000,
168
  'a_i64'              : 0xffffffffff,
169
  'a_double'           : 5.6789,
170
  'a_string'           : "my string",
171
//'a_binary,'
172
  'true_field'         : 1,
173
  'false_field'        : 0,
174
  'empty_struct_field' : {},
175
  'byte_list'          : [-127, -1, 0, 1, 127],
176
  'i16_list'           : [-1, 0, 1, 0x7fff],
177
  'i32_list'           : [-1, 0, 0xff, 0xffff, 0xffffff, 0x7fffffff],
178
  'i64_list'           : [-1, 0, 0xff, 0xffff, 0xffffff, 0xffffffff, 0xffffffffff, 0xffffffffffff, 0xffffffffffffff, 0x7fffffffffffffff],
179
  'double_list'        : [0.1, 0.2, 0.3],
180
  'string_list'        : ["first", "second", "third"],
181
//'binary_list,'
182
  'boolean_list'       : [1, 1, 1, 0, 0, 0],
183
  'struct_list'        : [{}, {}],
184
  'byte_set'           : [-127, -1, 0, 1, 127],
185
  'i16_set'            : [-1, 0, 1, 0x7fff],
186
  'i32_set'            : [1, 2, 3],
187
  'i64_set'            : [-1, 0, 0xff, 0xffff, 0xffffff, 0xffffffff, 0xffffffffff, 0xffffffffffff, 0xffffffffffffff, 0x7fffffffffffffff],
188
  'double_set'         : [0.1, 0.2, 0.3],
189
  'string_set'         : ["first", "second", "third"],
190
//'binary_set,'
191
  'boolean_set'        : [1, 0],
192
  'struct_set'         : [{}],
193
  'byte_byte_map'      : {1 : 2},
194
  'i16_byte_map'       : {1 : 1, -1 : 1, 0x7fff : 1},
195
  'i32_byte_map'       : {1 : 1, -1 : 1, 0x7fffffff : 1},
196
  'i64_byte_map'       : {0 : 1,  1 : 1, -1 : 1, 0x7fffffffffffffff : 1},
197
  'double_byte_map'    : {-1.1 : 1, 1.1 : 1},
198
  'string_byte_map'    : {"first" : 1, "second" : 2, "third" : 3, "" : 0},
199
//'binary_byte_map,'
200
  'boolean_byte_map'   : {1 : 1, 0 : 0},
201
  'byte_i16_map'       : {1 : 1, 2 : -1, 3 : 0x7fff},
202
  'byte_i32_map'       : {1 : 1, 2 : -1, 3 : 0x7fffffff},
203
  'byte_i64_map'       : {1 : 1, 2 : -1, 3 : 0x7fffffffffffffff},
204
  'byte_double_map'    : {1 : 0.1, 2 : -0.1, 3 : 1000000.1},
205
  'byte_string_map'    : {1 : "", 2 : "blah", 3 : "loooooooooooooong string"},
206
//'byte_binary_map,'
207
  'byte_boolean_map'   : {1 : 1, 2 : 0},
208
  'list_byte_map'      : {[1, 2, 3] : 1, [0, 1] : 2, [] : 0},
209
  'set_byte_map'       : {[1, 2, 3] : 1, [0, 1] : 2, [] : 0},
210
  'map_byte_map'       : {{1 : 1} : 1, {2 : 2} : 2, {} : 0},
211
  'byte_map_map'       : {0 : {}, 1 : {1 : 1}, 2 : {1 : 1, 2 : 2}},
212
  'byte_set_map'       : {0 : [], 1 : [1], 2 : [1, 2]},
213
  'byte_list_map'      : {0 : [], 1 : [1], 2 : [1, 2]},
214
}
215
 
216
 
217
 
218
service Srv {
219
  i32 Janky(1: i32 arg);
220
 
221
  // return type only methods
222
 
223
  void voidMethod();
224
  i32 primitiveMethod();
225
  CompactProtoTestStruct structMethod();
226
}
227
 
228
service Inherited extends Srv {
229
  i32 identity(1: i32 arg)
230
}
231
 
232
service EmptyService {}
233
 
234
// The only purpose of this thing is to increase the size of the generated code
235
// so that ZlibTest has more highly compressible data to play with.
236
struct BlowUp {
237
  1: map<list<i32>,set<map<i32,string>>> b1;
238
  2: map<list<i32>,set<map<i32,string>>> b2;
239
  3: map<list<i32>,set<map<i32,string>>> b3;
240
  4: map<list<i32>,set<map<i32,string>>> b4;
241
}
242
 
243
 
244
struct ReverseOrderStruct {
245
  4: string first;
246
  3: i16 second;
247
  2: i32 third;
248
  1: i64 fourth;
249
}
250
 
251
service ReverseOrderService {
252
  void myMethod(4: string first, 3: i16 second, 2: i32 third, 1: i64 fourth);
253
}
254
 
255
enum SomeEnum {
256
  ONE
257
  TWO
258
}
259
 
260
union TestUnion {
261
  /**
262
   * A doc string
263
   */
264
  1: string string_field;
265
  2: i32 i32_field;
266
  3: OneOfEach struct_field;
267
  4: list<RandomStuff> struct_list;
268
  5: i32 other_i32_field;
269
  6: SomeEnum enum_field;
270
}
271
 
272
union ComparableUnion {
273
  1: string string_field;
274
  2: binary binary_field;
275
}
276
 
277
struct StructWithAUnion {
278
  1: TestUnion test_union;
279
}
280
 
281
struct PrimitiveThenStruct {
282
  1: i32 blah;
283
  2: i32 blah2;
284
  3: Backwards bw;
285
}
286
 
287
typedef map<i32,i32> SomeMap
288
 
289
struct StructWithASomemap {
290
  1: required SomeMap somemap_field;
291
}