FlatBuffers 使用之(二):数据的写入与读取

本文介绍了如何使用FlatBuffers进行数据序列化和反序列化。首先,详细阐述了如何编写FlatBuffer Schema,接着展示了生成C#代码的步骤。然后,通过示例说明如何创建和读取Monster FlatBuffers,包括序列化内部对象和处理嵌套矢量。最后,讨论了如何修改已存在的FlatBuffers以及注意事项。
摘要由CSDN通过智能技术生成

写一个FlatBuffer Schema


https://github.com/google/flatbuffers到这里下载文件。

要开始使用flatbuffe,你要先写一个schema文件。详细写法点这里


// Example IDL file for our monster's schema.
namespace MyGame.Sample;
enum Color:byte { Red = 0, Green, Blue = 2 }
union Equipment { Weapon } // Optionally add more tables.
struct Vec3 {
  x:float;
  y:float;
  z:float;
}
table Monster {
  pos:Vec3; // Struct.
  mana:short = 150;
  hp:short = 100;
  name:string;
  friendly:bool = false (deprecated);
  inventory:[ubyte];  // Vector of scalars.
  color:Color = Blue; // Enum.
  weapons:[Weapon];   // Vector of tables.
  equipped:Equipment; // Union.
}
table Weapon {
  name:string;
  damage:short;
}
root_type Monster;

生成Monster的schema


在你写好FlatBuffers schema之后,你要使用工具去生成对应语言所需的代码。

工具在build目录下。使用vs或xcode编译就可以了。

这里以c#为例,对应的命令为:

cd flatbuffers/sample
./../flatc --csharp samples/monster.fbs。


读写monster flatbuffers


我们已经为我们所需的语言编译了schema,我们可以开始创建monster了,并且可通过FlatBuffers以序列化和反序列化他们。

开始创建FlatBuffers

引入命名空间:

using FlatBuffers;
using MyGame.Sample; // The `flatc` generated files. (Monster, Vec3, e
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值