]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/thrift/test/DocTest.thrift
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / jaegertracing / thrift / test / DocTest.thrift
CommitLineData
f67539c2
TL
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
26namespace java thrift.test
27namespace 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.) */
35enum 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 */
51typedef i64 UserId
52
53/** And this is where you would document a struct */
54struct 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: i8 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 */
70const i32 INT32CONSTANT = 9853
71const i16 INT16CONSTANT = 1616
72/** Everyone get in on the docu-action! */
73const map<string,string> MAPCONSTANT = {'hello':'world', 'goodnight':'moon'}
74
75struct Xtruct2
76{
77 1: i8 byte_thing,
78 2: Xtruct struct_thing,
79 3: i32 i32_thing
80}
81
82/** Struct insanity */
83struct 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
93exception Xception {
94 1: i32 errorCode,
95 2: string message
96}
97
98exception Xception2 {
99 1: i32 errorCode,
100 2: Xtruct struct_thing
101}
102
103/* C1 */
104/** Doc */
105/* C2 */
106/* C3 */
107struct EmptyStruct {}
108
109struct OneField {
110 1: EmptyStruct field
111}
112
113/** This is where you would document a Service */
114service 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 i8 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.
150typedef i32 SorryNoGo
151
152/**
153 * This is a trivial example of a multiline docstring.
154 */
155typedef i32 TrivialMultiLine
156
157/**
158 * This is the canonical example
159 * of a multiline docstring.
160 */
161typedef i32 StandardMultiLine
162
163/**
164 * The last line is non-blank.
165 * I said non-blank! */
166typedef i32 LastLine
167
168/** Both the first line
169 * are non blank. ;-)
170 * and the last line */
171typedef i32 FirstAndLastLine
172
173/**
174 * INDENTED TITLE
175 * The text is less indented.
176 */
177typedef i32 IndentedTitle
178
179/** First line indented.
180 * Unfortunately, this does not get indented.
181 */
182typedef i32 FirstLineIndent
183
184
185/**
186 * void code_in_comment() {
187 * printf("hooray code!");
188 * }
189 */
190typedef i32 CodeInComment
191
192 /**
193 * Indented Docstring.
194 * This whole docstring is indented.
195 * This line is indented further.
196 */
197typedef i32 IndentedDocstring
198
199/** Irregular docstring.
200 * We will have to punt
201 * on this thing */
202typedef i32 Irregular1
203
204/**
205 * note the space
206 * before these lines
207* but not this
208 * one
209 */
210typedef i32 Irregular2
211
212/**
213* Flush against
214* the left.
215*/
216typedef i32 Flush
217
218/**
219 No stars in this one.
220 It should still work fine, though.
221 Including indenting.
222 */
223typedef i32 NoStars
224
225/** Trailing whitespace
226Sloppy trailing whitespace
227is truncated. */
228typedef 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 */
239typedef i32 BigDog
240
241/**
242*
243*
244*/
245typedef i32 TotallyDegenerate
246
247/**no room for newline here*/
248
249/* * / */
250typedef i32 TestFor3501a
251
252/**
253 * /
254 */
255typedef i32 TestFor3501b
256
257
258/* Comment-end tokens can of course have more than one asterisk */
259struct TestFor3709_00 { /* ? */ 1: i32 foo }
260/* Comment-end tokens can of course have more than one asterisk **/
261struct TestFor3709_01 { /* ? */ 1: i32 foo }
262/* Comment-end tokens can of course have more than one asterisk ***/
263struct TestFor3709_02 { /* ? */ 1: i32 foo }
264/** Comment-end tokens can of course have more than one asterisk */
265struct TestFor3709_03 { /* ? */ 1: i32 foo }
266/** Comment-end tokens can of course have more than one asterisk **/
267struct TestFor3709_04 { /* ? */ 1: i32 foo }
268/** Comment-end tokens can of course have more than one asterisk ***/
269struct TestFor3709_05 { /* ? */ 1: i32 foo }
270/*** Comment-end tokens can of course have more than one asterisk */
271struct TestFor3709_06 { /* ? */ 1: i32 foo }
272/*** Comment-end tokens can of course have more than one asterisk **/
273struct TestFor3709_07 { /* ? */ 1: i32 foo }
274/*** Comment-end tokens can of course have more than one asterisk ***/
275struct TestFor3709_08 { /* ? */ 1: i32 foo }
276
277struct TestFor3709 {
278 /** This is a comment */
279 1: required string id,
280 /** This is also a comment **/
281 2: required string typeId,
282 /** Yet another comment! */
283 3: required i32 endTimestamp
284}
285
286
287/* THE END */