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
/**
21
 * Program doctext.
22
 *
23
 * Seriously, this is the documentation for this whole program.
24
 */
25
 
26
namespace java thrift.test
27
namespace cpp thrift.test
28
 
29
// C++ comment
30
/* c style comment */
31
 
32
# the new unix comment
33
 
34
/** Some doc text goes here.  Wow I am [nesting these] (no more nesting.) */
35
enum Numberz
36
{
37
 
38
  /** This is how to document a parameter */
39
  ONE = 1,
40
 
41
  /** And this is a doc for a parameter that has no specific value assigned */
42
  TWO,
43
 
44
  THREE,
45
  FIVE = 5,
46
  SIX,
47
  EIGHT = 8
48
}
49
 
50
/** This is how you would do a typedef doc */
51
typedef i64 UserId
52
 
53
/** And this is where you would document a struct */
54
struct Xtruct
55
{
56
 
57
  /** And the members of a struct */
58
  1:  string string_thing
59
 
60
  /** doct text goes before a comma */
61
  4:  byte   byte_thing,
62
 
63
  9:  i32    i32_thing,
64
  11: i64    i64_thing
65
}
66
 
67
/**
68
 * You can document constants now too.  Yeehaw!
69
 */
70
const i32 INT32CONSTANT = 9853
71
const i16 INT16CONSTANT = 1616
72
/** Everyone get in on the docu-action! */
73
const map<string,string> MAPCONSTANT = {'hello':'world', 'goodnight':'moon'}
74
 
75
struct Xtruct2
76
{
77
  1: byte   byte_thing,
78
  2: Xtruct struct_thing,
79
  3: i32    i32_thing
80
}
81
 
82
/** Struct insanity */
83
struct Insanity
84
{
85
 
86
  /** This is doc for field 1 */
87
  1: map<Numberz, UserId> userMap,
88
 
89
  /** And this is doc for field 2 */
90
  2: list<Xtruct> xtructs
91
}
92
 
93
exception Xception {
94
  1: i32 errorCode,
95
  2: string message
96
}
97
 
98
exception Xception2 {
99
  1: i32 errorCode,
100
  2: Xtruct struct_thing
101
}
102
 
103
/* C1 */
104
/** Doc */
105
/* C2 */
106
/* C3 */
107
struct EmptyStruct {}
108
 
109
struct OneField {
110
  1: EmptyStruct field
111
}
112
 
113
/** This is where you would document a Service */
114
service ThriftTest
115
{
116
 
117
  /** And this is how you would document functions in a service */
118
  void         testVoid(),
119
  string       testString(1: string thing),
120
  byte         testByte(1: byte thing),
121
  i32          testI32(1: i32 thing),
122
 
123
  /** Like this one */
124
  i64          testI64(1: i64 thing),
125
  double       testDouble(1: double thing),
126
  Xtruct       testStruct(1: Xtruct thing),
127
  Xtruct2      testNest(1: Xtruct2 thing),
128
  map<i32,i32> testMap(1: map<i32,i32> thing),
129
  set<i32>     testSet(1: set<i32> thing),
130
  list<i32>    testList(1: list<i32> thing),
131
 
132
  /** This is an example of a function with params documented */
133
  Numberz      testEnum(
134
 
135
    /** This param is a thing */
136
    1: Numberz thing
137
 
138
  ),
139
 
140
  UserId       testTypedef(1: UserId thing),
141
 
142
  map<i32,map<i32,i32>> testMapMap(1: i32 hello),
143
 
144
  /* So you think you've got this all worked, out eh? */
145
  map<UserId, map<Numberz,Insanity>> testInsanity(1: Insanity argument),
146
 
147
}
148
 
149
/// This style of Doxy-comment doesn't work.
150
typedef i32 SorryNoGo
151
 
152
/**
153
 * This is a trivial example of a multiline docstring.
154
 */
155
typedef i32 TrivialMultiLine
156
 
157
/**
158
 * This is the cannonical example
159
 * of a multiline docstring.
160
 */
161
typedef i32 StandardMultiLine
162
 
163
/**
164
 * The last line is non-blank.
165
 * I said non-blank! */
166
typedef i32 LastLine
167
 
168
/** Both the first line
169
 * are non blank. ;-)
170
 * and the last line */
171
typedef i32 FirstAndLastLine
172
 
173
/**
174
 *    INDENTED TITLE
175
 * The text is less indented.
176
 */
177
typedef i32 IndentedTitle
178
 
179
/**       First line indented.
180
 * Unfortunately, this does not get indented.
181
 */
182
typedef i32 FirstLineIndent
183
 
184
 
185
/**
186
 * void code_in_comment() {
187
 *   printf("hooray code!");
188
 * }
189
 */
190
typedef i32 CodeInComment
191
 
192
    /**
193
     * Indented Docstring.
194
     * This whole docstring is indented.
195
     *   This line is indented further.
196
     */
197
typedef i32 IndentedDocstring
198
 
199
/** Irregular docstring.
200
 * We will have to punt
201
  * on this thing */
202
typedef i32 Irregular1
203
 
204
/**
205
 * note the space
206
 * before these lines
207
* but not this
208
 * one
209
 */
210
typedef i32 Irregular2
211
 
212
/**
213
* Flush against
214
* the left.
215
*/
216
typedef i32 Flush
217
 
218
/**
219
  No stars in this one.
220
  It should still work fine, though.
221
    Including indenting.
222
    */
223
typedef i32 NoStars
224
 
225
/** Trailing whitespace   
226
Sloppy trailing whitespace   
227
is truncated.   */
228
typedef i32 TrailingWhitespace
229
 
230
/**
231
 * This is a big one.
232
 *
233
 * We'll have some blank lines in it.
234
 * 
235
 * void as_well_as(some code) {
236
 *   puts("YEEHAW!");
237
 * }
238
 */
239
typedef i32 BigDog
240
 
241
/**
242
*
243
*
244
*/
245
typedef i32 TotallyDegenerate
246
 
247
/* THE END */