![](/img/trans.png)
[英]flatbuffers c++, I wonder if multiple tables in 1 fbs file is possible
[英]Multiple root tables in flatbuffers
我正在檢查Flatbuffers以實現通信協議。 在我看來,當收到一條消息時,它可能包含許多不同的表。 如果我正確理解,則在Flatbuffers中實現此目的的方法是使用“根”表,該表在一個聯合中具有每個可能的不同表。
就我而言,我已經知道傳入的類型(類型是標頭的一部分)=>我不一定需要能夠將每種類型放在單個表中。 但是,似乎無法將多個表標記為“根”類型。 這意味着,如果我定義了表Foo
和Bar
,則只能獲得用於反序列化的GetFoo()
或GetBar()
方法,但不能同時獲得兩者。
我假設也可以將定義拆分到不同的模式文件中,但是由於它們將共享某些子類,因此我也需要一個共享的模式文件來定義常見的定義。 對於簡單的情況,這似乎比必需的要復雜一些。
是否有另一種方法可以使用Flatbuffers反序列化多個不同類型?
是的,您可以這樣做。 請注意,生成的GetMyType()
只是可用於任何類型的模板化GetRootAs<MyType>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.