【问题标题】:Multiple root tables in flatbuffersflatbuffers 中的多个根表
【发布时间】:2016-03-11 10:38:21
【问题描述】:

我正在检查 Flatbuffers 以实现通信协议。当收到一条消息时,在我的情况下它可能包含许多不同的表。如果我理解正确,在 Flatbuffers 中实现这一点的方法是使用一个“根”表,该表在一个联合中包含每个可能的不同表。

就我而言,我已经知道传入的类型(类型是标题的一部分)=> 我不一定需要能够将每种类型放在一个表中。但是,似乎不可能将多个表标记为“根”类型。这意味着,如果我定义了表 FooBar,我只能获得 GetFoo()GetBar() 反序列化方法,但不能同时获得两者。

我假设也可以将定义拆分到不同的模式文件中,但由于它们会共享一些子类,我还需要一个共享模式文件来用于公共定义。对于简单的情况,这似乎比所需的要复杂一些。

还有其他方法可以使用 Flatbuffers 反序列化多种不同类型吗?

【问题讨论】:

    标签: c++ serialization deserialization flatbuffers


    【解决方案1】:

    是的,您可以这样做。请注意,生成的 GetMyType() 只是模板化 GetRootAs<MyType> 的缩写,您可以将其用于任何类型。

    【讨论】:

    • 啊!我没有看代码,只是看文档。我将打开一张票,要求在文档中添加注释。
    猜你喜欢
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    相关资源
    最近更新 更多