写一个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