• thrift 使用小结 日月光明的日志 网易博客


    thrift 使用小结 - 日月光明的日志 - 网易博客

    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_”以防止其他字段使用它的整数编号。
  • 相关阅读:
    minimum-path-sum
    pascals-triangle
    Java -- 二分查找
    redis缓存雪崩,击穿,穿透(copy)
    使用redis限制提交次数
    数据库的悲观锁和乐观锁
    mysql常用命令
    php压缩Zip文件和文件打包下载
    php去除数据库的数据空格
    php获取本年、本月、本周时间戳和日期格式的实例代码(分析)
  • 原文地址:https://www.cnblogs.com/lexus/p/3027987.html
Copyright © 2020-2023  润新知