zoukankan      html  css  js  c++  java
  • 数据序列化工具——flatbuffer

    flatbuffer是一款类似于protobuf的数据序列化工具。所有数据序列化,简单来说,就是将某程数据结构按照一定的格式进行编码与解码,以方便在不同的进程间传递后,能够正确的还原成之前的数据结构。

    flatbuffer大体上的用法与protobuf是类似的。所不同的是,它支持union定义,并可以通过as方法来简单的将由union包裹的数据进行类型转换,省去了一些麻烦。另外,它使用offset形式进行数据存储,从理论上来说,可以加快访问速度。(有待验证)

    一个示例:

    namespace com.cnblogs;
    
    enum RequestType: byte {
      RequestDataA = 0,
    RequestDataB } table RequestDataA { setting:
    bool; }
    table RequestDataB {
      setting: bool;
    }
    union RequestDataField { RequestDataA,
    RequestDataB } table Request { type: RequestType; message: RequestDataField; } root_type Request;

    如上的结构,就可以通过type成员和as方法来简单的进行request的类型区别与转换。

    资料参考:

    [中文]

    https://www.cnblogs.com/hgwang/p/9964151.html

    https://www.cnblogs.com/frankwt/p/12943924.html

    [英文]

    https://google.github.io/flatbuffers/

  • 相关阅读:
    UITextField的总结
    【实战】登录界面
    点分治学习
    2020/3/1
    2020/2/29
    2020/2/28
    2020/2/27
    2020/2/27
    最小树形图
    Ch’s gift HDU6162
  • 原文地址:https://www.cnblogs.com/qyit/p/13389455.html
Copyright © 2011-2022 走看看