日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Thrift IDL示例文件

發布時間:2024/3/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Thrift IDL示例文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 示例1:

在src下新建thrift目錄,在此目錄下新建MyData.thrift文件

namespace java thrift.generatedtypedef i16 short typedef i32 int typedef i64 long typedef bool boolean typedef string Stringstruct Person {1:optional String username,2:optional int age,3:optional boolean married }exception DataException {1:optional String message,2:optional String callback,3:optional String date }service PersonService {Person getPersonByUsername(1:required String username) throws (1:DataException dataException),void savePerson(1:required Person person) throws(1:DataException dataException) }

然后在IDEA中新建Terminal

thrift --gen java src/thrift/MyData.thrift


此時會在項目的根目錄下生成代碼,然后在src/main/java/com.retech下新建一個目錄Thrift,然后將上面生成的代碼復制到此路徑下。
此時代碼就已經生成好,
在此目錄下新建PersonServiceImpl并實現生成的PersonService接口。

多語言示例2:

namespace c_glib TTest namespace cpp thrift.test namespace delphi Thrift.Test namespace go thrifttest namespace java thrift.test namespace js ThriftTest namespace lua ThriftTest namespace netstd ThriftTest namespace perl ThriftTest namespace php ThriftTest namespace py ThriftTest namespace py.twisted ThriftTest namespace rb Thrift.Test namespace st ThriftTest namespace xsd test (uri = 'http://thrift.apache.org/ns/ThriftTest')// Presence of namespaces and sub-namespaces for which there is // no generator should compile with warnings only namespace noexist ThriftTest namespace cpp.noexist ThriftTestnamespace * thrift.test/*** Docstring!*/ enum Numberz {ONE = 1,TWO,THREE,FIVE = 5,SIX,EIGHT = 8 }const Numberz myNumberz = Numberz.ONE; // the following is expected to fail: // const Numberz urNumberz = ONE;typedef i64 UserIdstruct Bonk {1: string message,2: i32 type }typedef map<string,Bonk> MapTypestruct Bools {1: bool im_true,2: bool im_false, }struct Xtruct {1: string string_thing,4: i8 byte_thing,9: i32 i32_thing,11: i64 i64_thing }struct Xtruct2 {1: i8 byte_thing, // used to be byte, hence the name2: Xtruct struct_thing,3: i32 i32_thing }struct Xtruct3 {1: string string_thing,4: i32 changed,9: i32 i32_thing,11: i64 i64_thing }struct Insanity {1: map<Numberz, UserId> userMap,2: list<Xtruct> xtructs } (python.immutable= "")struct CrazyNesting {1: string string_field,2: optional set<Insanity> set_field,// Do not insert line break as test/go/Makefile.am is removing this line with pattern match3: required list<map<set<i32> (python.immutable = ""), map<i32,set<list<map<Insanity,string>(python.immutable = "")> (python.immutable = "")>>>> list_field,4: binary binary_field }union SomeUnion {1: map<Numberz, UserId> map_thing,2: string string_thing,3: i32 i32_thing,4: Xtruct3 xtruct_thing,5: Insanity insanity_thing }exception Xception {1: i32 errorCode,2: string message }exception Xception2 {1: i32 errorCode,2: Xtruct struct_thing }struct EmptyStruct {}struct OneField {1: EmptyStruct field }service ThriftTest {/*** Prints "testVoid()" and returns nothing.*/void testVoid(),/*** Prints 'testString("%s")' with thing as '%s'* @param string thing - the string to print* @return string - returns the string 'thing'*/string testString(1: string thing),/*** Prints 'testBool("%s")' where '%s' with thing as 'true' or 'false'* @param bool thing - the bool data to print* @return bool - returns the bool 'thing'*/bool testBool(1: bool thing),/*** Prints 'testByte("%d")' with thing as '%d'* The types i8 and byte are synonyms, use of i8 is encouraged, byte still exists for the sake of compatibility.* @param byte thing - the i8/byte to print* @return i8 - returns the i8/byte 'thing'*/i8 testByte(1: i8 thing),/*** Prints 'testI32("%d")' with thing as '%d'* @param i32 thing - the i32 to print* @return i32 - returns the i32 'thing'*/i32 testI32(1: i32 thing),/*** Prints 'testI64("%d")' with thing as '%d'* @param i64 thing - the i64 to print* @return i64 - returns the i64 'thing'*/i64 testI64(1: i64 thing),/*** Prints 'testDouble("%f")' with thing as '%f'* @param double thing - the double to print* @return double - returns the double 'thing'*/double testDouble(1: double thing),/*** Prints 'testBinary("%s")' where '%s' is a hex-formatted string of thing's data* @param binary thing - the binary data to print* @return binary - returns the binary 'thing'*/binary testBinary(1: binary thing),/*** Prints 'testStruct("{%s}")' where thing has been formatted into a string of comma separated values* @param Xtruct thing - the Xtruct to print* @return Xtruct - returns the Xtruct 'thing'*/Xtruct testStruct(1: Xtruct thing),/*** Prints 'testNest("{%s}")' where thing has been formatted into a string of the nested struct* @param Xtruct2 thing - the Xtruct2 to print* @return Xtruct2 - returns the Xtruct2 'thing'*/Xtruct2 testNest(1: Xtruct2 thing),/*** Prints 'testMap("{%s")' where thing has been formatted into a string of 'key => value' pairs* separated by commas and new lines* @param map<i32,i32> thing - the map<i32,i32> to print* @return map<i32,i32> - returns the map<i32,i32> 'thing'*/map<i32,i32> testMap(1: map<i32,i32> thing),/*** Prints 'testStringMap("{%s}")' where thing has been formatted into a string of 'key => value' pairs* separated by commas and new lines* @param map<string,string> thing - the map<string,string> to print* @return map<string,string> - returns the map<string,string> 'thing'*/map<string,string> testStringMap(1: map<string,string> thing),/*** Prints 'testSet("{%s}")' where thing has been formatted into a string of values* separated by commas and new lines* @param set<i32> thing - the set<i32> to print* @return set<i32> - returns the set<i32> 'thing'*/set<i32> testSet(1: set<i32> thing),/*** Prints 'testList("{%s}")' where thing has been formatted into a string of values* separated by commas and new lines* @param list<i32> thing - the list<i32> to print* @return list<i32> - returns the list<i32> 'thing'*/list<i32> testList(1: list<i32> thing),/*** Prints 'testEnum("%d")' where thing has been formatted into its numeric value* @param Numberz thing - the Numberz to print* @return Numberz - returns the Numberz 'thing'*/Numberz testEnum(1: Numberz thing),/*** Prints 'testTypedef("%d")' with thing as '%d'* @param UserId thing - the UserId to print* @return UserId - returns the UserId 'thing'*/UserId testTypedef(1: UserId thing),/*** Prints 'testMapMap("%d")' with hello as '%d'* @param i32 hello - the i32 to print* @return map<i32,map<i32,i32>> - returns a dictionary with these values:* {-4 => {-4 => -4, -3 => -3, -2 => -2, -1 => -1, }, 4 => {1 => 1, 2 => 2, 3 => 3, 4 => 4, }, }*/map<i32,map<i32,i32>> testMapMap(1: i32 hello),/*** So you think you've got this all worked out, eh?** Creates a map with these values and prints it out:* { 1 => { 2 => argument,* 3 => argument,* },* 2 => { 6 => <empty Insanity struct>, },* }* @return map<UserId, map<Numberz,Insanity>> - a map with the above values*/map<UserId, map<Numberz,Insanity>> testInsanity(1: Insanity argument),/*** Prints 'testMulti()'* @param i8 arg0 -* @param i32 arg1 -* @param i64 arg2 -* @param map<i16, string> arg3 -* @param Numberz arg4 -* @param UserId arg5 -* @return Xtruct - returns an Xtruct with string_thing = "Hello2, byte_thing = arg0, i32_thing = arg1* and i64_thing = arg2*/Xtruct testMulti(1: i8 arg0, 2: i32 arg1, 3: i64 arg2, 4: map<i16, string> arg3, 5: Numberz arg4, 6: UserId arg5),/*** Print 'testException(%s)' with arg as '%s'* @param string arg - a string indication what type of exception to throw* if arg == "Xception" throw Xception with errorCode = 1001 and message = arg* else if arg == "TException" throw TException* else do not throw anything*/void testException(1: string arg) throws(1: Xception err1),/*** Print 'testMultiException(%s, %s)' with arg0 as '%s' and arg1 as '%s'* @param string arg - a string indicating what type of exception to throw* if arg0 == "Xception" throw Xception with errorCode = 1001 and message = "This is an Xception"* else if arg0 == "Xception2" throw Xception2 with errorCode = 2002 and struct_thing.string_thing = "This is an Xception2"* else do not throw anything* @return Xtruct - an Xtruct with string_thing = arg1*/Xtruct testMultiException(1: string arg0, 2: string arg1) throws(1: Xception err1, 2: Xception2 err2)/*** Print 'testOneway(%d): Sleeping...' with secondsToSleep as '%d'* sleep 'secondsToSleep'* Print 'testOneway(%d): done sleeping!' with secondsToSleep as '%d'* @param i32 secondsToSleep - the number of seconds to sleep*/oneway void testOneway(1:i32 secondsToSleep) }service SecondService {/*** Prints 'testString("%s")' with thing as '%s'* @param string thing - the string to print* @return string - returns the string 'thing'*/string secondtestString(1: string thing) }struct VersioningTestV1 {1: i32 begin_in_both,3: string old_string,12: i32 end_in_both }struct VersioningTestV2 {1: i32 begin_in_both,2: i32 newint,3: i8 newbyte,4: i16 newshort,5: i64 newlong,6: double newdouble7: Bonk newstruct,8: list<i32> newlist,9: set<i32> newset,10: map<i32, i32> newmap,11: string newstring,12: i32 end_in_both }struct ListTypeVersioningV1 {1: list<i32> myints;2: string hello; }struct ListTypeVersioningV2 {1: list<string> strings;2: string hello; }struct GuessProtocolStruct {7: map<string,string> map_field, }struct LargeDeltas {1: Bools b1,10: Bools b10,100: Bools b100,500: bool check_true,1000: Bools b1000,1500: bool check_false,2000: VersioningTestV2 vertwo2000,2500: set<string> a_set2500,3000: VersioningTestV2 vertwo3000,4000: list<i32> big_numbers }struct NestedListsI32x2 {1: list<list<i32>> integerlist } struct NestedListsI32x3 {1: list<list<list<i32>>> integerlist } struct NestedMixedx2 {1: list<set<i32>> int_set_list2: map<i32,set<string>> map_int_strset3: list<map<i32,set<string>>> map_int_strset_list } struct ListBonks {1: list<Bonk> bonk } struct NestedListsBonk {1: list<list<list<Bonk>>> bonk }struct BoolTest {1: optional bool b = true;2: optional string s = "true"; }struct StructA {1: required string s; }struct StructB {1: optional StructA aa;2: required StructA ab; }struct OptionalSetDefaultTest {1: optional set<string> with_default = [ "test" ] }

總結

以上是生活随笔為你收集整理的Thrift IDL示例文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕在线观看你懂的 | 日批av| 天天操夜夜夜 | 日本高清网站 | 精品黄色片 | 国产刺激视频 | 国产精品秘 | 夜夜嗨av一区二区三区网页 | 亚洲免费av一区二区 | 免费中文字幕av | 日韩三级在线观看 | av新天堂| 国产福利小视频在线观看 | 国产一线二线三线女 | 毛片入口| 亚洲另类春色 | 日本人与黑人做爰视频 | 毛片3| 黄色片一区二区三区 | 中国在线观看免费视频 | 亚洲精品一线二线三线 | 亚洲视频精品在线观看 | 九九热视频精品在线观看 | 丰满人妻妇伦又伦精品国产 | 18成人在线 | www男人的天堂 | 久久丫丫 | 欧美另类xxxx | 老司机成人在线 | 91亚洲精品一区二区乱码 | 国产成人精品一区二三区四区五区 | av在线视屏| 可以免费看的黄色网址 | 浴室里强摁做开腿呻吟男男 | 王者后宫yin肉h文催眠 | 私拍在线| 尹人综合在线 | 欧美日韩免费做爰视频 | 激情视频久久 | 91在线播放视频 | 国产美女精品视频 | 成人精品动漫 | 国内精品小视频 | 超碰97在线免费观看 | 色呦呦在线免费观看 | 欧美乱大交xxxxx潮喷l头像 | a爱视频 | 男人插入女人下面视频 | 亚洲女人天堂成人av在线 | 少妇毛片一区二区三区 | 黄瓜视频在线观看污 | 亚洲国产精品视频在线观看 | 欧美一区永久视频免费观看 | 国产乱女淫av麻豆国产 | 国产精品白浆一区二小说 | 午夜在线一区二区三区 | 国产自产21区 | 免费观看成年人网站 | 久久成年网 | 精品人妻无码一区二区三区换脸 | 99热黄色 | 国产在线一区二区 | 亚洲国产一区二区三区四区 | 免费黄色片子 | 亚洲日日骚 | 老司机激情影院 | 综合激情五月婷婷 | yes4444视频在线观看 | 欧美精品福利 | 尤果网福利视频在线观看 | www香蕉| 按摩毛片 | 日本视频免费在线播放 | 91免费版黄 | 操你啦在线视频 | 韩国伦理在线视频 | 禁漫天堂在线 | 久久久久这里只有精品 | 四虎久久 | 四虎影院一区 | 成人免费一级片 | 国产精品888 | 人妻熟女一区二区三区app下载 | 少妇精品一区二区 | 国产aⅴ无码片毛片一级一区2 | 日韩在线观看视频免费 | 精品福利三区3d卡通动漫 | 国产呦系列 | 人人av在线| 中文字幕日韩欧美一区二区三区 | av黄色一级片 | av成人免费在线 | 一本色道久久综合精品婷婷 | 黄色成人毛片 | 一级片日韩 | 丰满熟女人妻一区二区三区 | 99精品99| 丁香久久综合 | 青青草视频网站 |