博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thrift 使用小结 - 日月光明的日志 - 网易博客
阅读量:5955 次
发布时间:2019-06-19

本文共 709 字,大约阅读时间需要 2 分钟。

thrift 使用小结   2012-09-24 18:15:20|  分类: 编程 |  标签:thrift  optional   |字号 订阅 最近在使用thrift的时候,C++遇到optional属性时,遇到问题:虽然赋值,但thrift不会把值送过去。 thrift文件内容可能会随着时间变化的。如果已经存在的消息类型不再符合设计要求,比如,新的设计要在message格式中添加一个额外字段,但你仍想使用以前的thrift文件产生的处理代码。如果想要达到这个目的,只需: (1)  不要修改已存在域的整数编号 (2)  新添加的域必须是optional的,以便格式兼容。对于一些语言,如果要为optional的字段赋值,需要特殊处理,比如对于C++语言,要为     struct Example{         1 : i32 id,         2 : string name,         3 : optional age,     } 中的optional字段age赋值,需要将它的__isset值设为true,这样才能序列化并传输或者存储(不然optional字段被认为不存在,不会被传输或者存储), Example example; ...... example.age=10, example.__isset.age = true; //__isset是每个thrift对象的自带的public成员,来指定optional字段是否启用并赋值。 ...... 这里没有设置,虽然赋值了,但thrift不认。 (3)  非required域可以删除,前提是它的整数编号不会被其他域使用。对于删除的字段,名字前面可添加“OBSOLETE_”以防止其他字段使用它的整数编号。

转载地址:http://iuexx.baihongyu.com/

你可能感兴趣的文章
js常用方法
查看>>
认识光圈0001
查看>>
c++矩阵运算库Eigen简介
查看>>
类的初始化过程
查看>>
在回调中获取Url参数
查看>>
AttachDispatch
查看>>
Money-去哪了每日站立会议
查看>>
POJ2146 Confusing Login Names [最小字符串编辑距离]
查看>>
forEach for 循环
查看>>
配置eclipse编写html/js/css/jsp/java时自动提示
查看>>
【莫队算法】【权值分块】bzoj3585 mex
查看>>
解决ScrollViewer嵌套的DataGrid、ListBox等控件的鼠标滚动事件无效
查看>>
CodeForces 501B - Misha and Changing Handles
查看>>
第二章 数学运算、数组、文字处理
查看>>
商品详情页面的显示
查看>>
欧几里德算法与扩展欧几里德算法
查看>>
Codeforces Round #412 Div. 2 补题 D. Dynamic Problem Scoring
查看>>
WI-FI: connection through CLI
查看>>
Jersey +jetty 实现微服务(一)
查看>>
php面向对象基础
查看>>