09-Thrift高级3
来源:互联网 发布:vr软件看不了 编辑:程序博客网 时间:2024/06/05 02:22
总纲
从这一篇开始,学习和讲解Thrift一些细节性的东西。
Thrift定义
参考 Url
首先,Thrift编译的命令:thrift -r -o . -out . --gen go *.thrift
其中,语言对照表如下(或者查看help):
// 命名空间namespace java test_java_package namespace py test_python_package ....// 服务定义 service YourName{ string test(1: i32 num,2: string name) }// 基本数据类型 bool 布尔值, 占1个字节i8 有符号整数,占1个字节i16 有符号整数,占2个字节i32 有符号整数,占4个字节i64 有符号整数,占8个字节double 浮点数,占8个字节string 字符串binary 二进制大对象(python里对应的是string类型,java里对应的是ByteBuffer等)map<t1,t2> mapparam 键值对,t1,t2 代指其他类型list<t1> listparam 列表,t1代指其他类型set<t1> setparam 散列集,t1代指其他类型// 常量和枚举const i32 TESTNAME = 120 enum TestEnum { A = 1, B = 2 }// 别名 typedef i32 MyInteger// 结构体 // 每一个结构体会单独生成一个类。每个变量可以附上默认值(如t1类型)。字段前可加 optional 标记,表示该字段在没有赋值的情况,不会被序列化。注意,每定义一个字段,数字标识符需要递增(如以上的1:i32 t1=0 中的1:) struct TestStruct{ 1:i32 t1 = 0, 2:string t2, optional string t3 } // 文件包含// 注意,引用其他thrift文件的结构体等信息的时候,要加前缀。比如A.thrift文件中有结构体 T1,在B文件中引用A的T1的信息时,需要携程 A.T1,否则无法自动生成codeinclude "test.thrift"// 继承service A{ void f1(1:i32 num) }service B extends A{ void f2(1:string str) }// 异常exception IException { 1: i32 num, 2: string msg } // 使用的时候抛出定义的异常即可 void f() throws (1:IException ex) // 注释方法1. /* xxxx */2. # asdasdas3. // sssss// 异步方法 // 加上关键字oneway,异步方法,返回值必须是voidservice A{ oneway void f() }
阅读全文
0 0
- 09-Thrift高级3
- 07-Thrift高级
- 08-Thrift高级2
- thrift编译器3
- thrift.rb--0.9.3
- Thrift
- thrift
- thrift
- thrift
- Thrift
- Thrift
- thrift
- thrift
- thrift
- Thrift
- thrift
- Thrift
- Thrift
- 一个简洁的高自定义的H5播放器
- 策略模式
- MFC学习笔记-线程
- Oracle快速入门(1)——ORACLE数据库简介
- linux 定时删除文件
- 09-Thrift高级3
- scala开发环境搭建(scala学习一)
- DllMain和多线程死锁
- JfreeChart相关开发:柱形图,饼图,折线图
- C语言笔记——(i++)和(++i)的区别
- 使用inet_ntop替换inet_ntoa进行网络地址到字符地址转换
- Java多线程基础——线程和线程安全
- 如何克服拖延症
- 随机排列出场顺序