| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| /** |
| * Program doctext. |
| * |
| * Seriously, this is the documentation for this whole program. |
| */ |
| |
| namespace java thrift.test |
| namespace cpp thrift.test |
| |
| // C++ comment |
| /* c style comment */ |
| |
| # the new unix comment |
| |
| /** Some doc text goes here. Wow I am [nesting these] (no more nesting.) */ |
| enum Numberz |
| { |
| |
| /** This is how to document a parameter */ |
| ONE = 1, |
| |
| /** And this is a doc for a parameter that has no specific value assigned */ |
| TWO, |
| |
| THREE, |
| FIVE = 5, |
| SIX, |
| EIGHT = 8 |
| } |
| |
| /** This is how you would do a typedef doc */ |
| typedef i64 UserId |
| |
| /** And this is where you would document a struct */ |
| struct Xtruct |
| { |
| |
| /** And the members of a struct */ |
| 1: string string_thing |
| |
| /** doct text goes before a comma */ |
| 4: i8 byte_thing, |
| |
| 9: i32 i32_thing, |
| 11: i64 i64_thing |
| } |
| |
| /** |
| * You can document constants now too. Yeehaw! |
| */ |
| const i32 INT32CONSTANT = 9853 |
| const i16 INT16CONSTANT = 1616 |
| /** Everyone get in on the docu-action! */ |
| const map<string,string> MAPCONSTANT = {'hello':'world', 'goodnight':'moon'} |
| |
| struct Xtruct2 |
| { |
| 1: i8 byte_thing, |
| 2: Xtruct struct_thing, |
| 3: i32 i32_thing |
| } |
| |
| /** Struct insanity */ |
| struct Insanity |
| { |
| |
| /** This is doc for field 1 */ |
| 1: map<Numberz, UserId> userMap, |
| |
| /** And this is doc for field 2 */ |
| 2: list<Xtruct> xtructs |
| } |
| |
| exception Xception { |
| 1: i32 errorCode, |
| 2: string message |
| } |
| |
| exception Xception2 { |
| 1: i32 errorCode, |
| 2: Xtruct struct_thing |
| } |
| |
| /* C1 */ |
| /** Doc */ |
| /* C2 */ |
| /* C3 */ |
| struct EmptyStruct {} |
| |
| struct OneField { |
| 1: EmptyStruct field |
| } |
| |
| /** This is where you would document a Service */ |
| service ThriftTest |
| { |
| |
| /** And this is how you would document functions in a service */ |
| void testVoid(), |
| string testString(1: string thing), |
| i8 testByte(1: byte thing), |
| i32 testI32(1: i32 thing), |
| |
| /** Like this one */ |
| i64 testI64(1: i64 thing), |
| double testDouble(1: double thing), |
| Xtruct testStruct(1: Xtruct thing), |
| Xtruct2 testNest(1: Xtruct2 thing), |
| map<i32,i32> testMap(1: map<i32,i32> thing), |
| set<i32> testSet(1: set<i32> thing), |
| list<i32> testList(1: list<i32> thing), |
| |
| /** This is an example of a function with params documented */ |
| Numberz testEnum( |
| |
| /** This param is a thing */ |
| 1: Numberz thing |
| |
| ), |
| |
| UserId testTypedef(1: UserId thing), |
| |
| map<i32,map<i32,i32>> testMapMap(1: i32 hello), |
| |
| /* So you think you've got this all worked, out eh? */ |
| map<UserId, map<Numberz,Insanity>> testInsanity(1: Insanity argument), |
| |
| } |
| |
| /// This style of Doxy-comment doesn't work. |
| typedef i32 SorryNoGo |
| |
| /** |
| * This is a trivial example of a multiline docstring. |
| */ |
| typedef i32 TrivialMultiLine |
| |
| /** |
| * This is the canonical example |
| * of a multiline docstring. |
| */ |
| typedef i32 StandardMultiLine |
| |
| /** |
| * The last line is non-blank. |
| * I said non-blank! */ |
| typedef i32 LastLine |
| |
| /** Both the first line |
| * are non blank. ;-) |
| * and the last line */ |
| typedef i32 FirstAndLastLine |
| |
| /** |
| * INDENTED TITLE |
| * The text is less indented. |
| */ |
| typedef i32 IndentedTitle |
| |
| /** First line indented. |
| * Unfortunately, this does not get indented. |
| */ |
| typedef i32 FirstLineIndent |
| |
| |
| /** |
| * void code_in_comment() { |
| * printf("hooray code!"); |
| * } |
| */ |
| typedef i32 CodeInComment |
| |
| /** |
| * Indented Docstring. |
| * This whole docstring is indented. |
| * This line is indented further. |
| */ |
| typedef i32 IndentedDocstring |
| |
| /** Irregular docstring. |
| * We will have to punt |
| * on this thing */ |
| typedef i32 Irregular1 |
| |
| /** |
| * note the space |
| * before these lines |
| * but not this |
| * one |
| */ |
| typedef i32 Irregular2 |
| |
| /** |
| * Flush against |
| * the left. |
| */ |
| typedef i32 Flush |
| |
| /** |
| No stars in this one. |
| It should still work fine, though. |
| Including indenting. |
| */ |
| typedef i32 NoStars |
| |
| /** Trailing whitespace |
| Sloppy trailing whitespace |
| is truncated. */ |
| typedef i32 TrailingWhitespace |
| |
| /** |
| * This is a big one. |
| * |
| * We'll have some blank lines in it. |
| * |
| * void as_well_as(some code) { |
| * puts("YEEHAW!"); |
| * } |
| */ |
| typedef i32 BigDog |
| |
| /** |
| * |
| * |
| */ |
| typedef i32 TotallyDegenerate |
| |
| /**no room for newline here*/ |
| |
| /* * / */ |
| typedef i32 TestFor3501a |
| |
| /** |
| * / |
| */ |
| typedef i32 TestFor3501b |
| |
| |
| /* Comment-end tokens can of course have more than one asterisk */ |
| struct TestFor3709_00 { /* ? */ 1: i32 foo } |
| /* Comment-end tokens can of course have more than one asterisk **/ |
| struct TestFor3709_01 { /* ? */ 1: i32 foo } |
| /* Comment-end tokens can of course have more than one asterisk ***/ |
| struct TestFor3709_02 { /* ? */ 1: i32 foo } |
| /** Comment-end tokens can of course have more than one asterisk */ |
| struct TestFor3709_03 { /* ? */ 1: i32 foo } |
| /** Comment-end tokens can of course have more than one asterisk **/ |
| struct TestFor3709_04 { /* ? */ 1: i32 foo } |
| /** Comment-end tokens can of course have more than one asterisk ***/ |
| struct TestFor3709_05 { /* ? */ 1: i32 foo } |
| /*** Comment-end tokens can of course have more than one asterisk */ |
| struct TestFor3709_06 { /* ? */ 1: i32 foo } |
| /*** Comment-end tokens can of course have more than one asterisk **/ |
| struct TestFor3709_07 { /* ? */ 1: i32 foo } |
| /*** Comment-end tokens can of course have more than one asterisk ***/ |
| struct TestFor3709_08 { /* ? */ 1: i32 foo } |
| |
| struct TestFor3709 { |
| /** This is a comment */ |
| 1: required string id, |
| /** This is also a comment **/ |
| 2: required string typeId, |
| /** Yet another comment! */ |
| 3: required i32 endTimestamp |
| } |
| |
| |
| /* THE END */ |