问题标签 [flatbuffers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - FlatBuffers 中的 original_order 和数组
文档说关于 original_order:
“original_order(在表上):由于表中的元素不需要以任何特定顺序存储,因此它们通常通过按大小排序来优化空间。这个属性阻止了这种情况的发生。”
我现在有点困惑。我认为 FlatBuffers 表类似于 C++ 中的数组,在我的代码中我没有看到任何问题。例如,我定义了这样的 LineString 几何:
这样可行。虽然需要声明 original_order 吗?
c# - FlatBuffers KeyValuePair 数据类型和架构定义
我有一个需要使用 TCP 通过网络发送的对象。我的工作正常,但我现在已经扩展了我的实现,并且在确定如何定义我的FlatBuffer模式时遇到了麻烦。
要发送的对象是这样的:
PredictionMethod是一个枚举:
NGramPrediction看起来像这样:
克看起来像这样:
距离预测如下所示:
最后,IIRVector3看起来像这样:
我正在尝试为 FlatBuffers 定义我的架构:
我认为一切看起来都是正确的,但我不知道该为字典做什么......
FBGram.Possibilities应该是 aDictionary<char, int>
并且FBGram应该是KeyValuePair<char, int>
。
注意: Gram 的构造函数以 aList<char>
和 anint
作为参数,而 for 的构造函数NGramPrediction
以 aGram
作为参数。
有人可以帮我解决我的架构吗?
javascript - 是否可以使用 flatbuffer 作为 redux 的状态存储?
我想使用 redux 但不是 javascript 对象来表示我想使用 flatbuffer 的状态。我怎么能这样做?
flatbuffers - 有效清除表层的 flatbuffer 构建器
我可以重用从flatbuffers::FlatBufferBuilder
调用后生成的“子”构建器实例builder.Clear()
吗?builder.Clear()
对子建设者有什么影响?
生成了一个 flatbuffers 模式,如下所示:
如果我使用builder.clear()
'flatbuffers::FlatBufferBuilder' 的实例化重置构建器,这将允许我生成新的串行数据,而无需调用重置函数或更新任何单个表序列化器,例如我的实例化FB_mytable1Builder myFB_mytable1Builder(builder)
?或者我是否需要确保各个构建器对象具有意味着它们不会被重用的范围?
c++ - flatbuffers:使用 add_myTable(table) 对数据进行编码
我正在尝试使用以下方法来构建表,取自 flatbuffers 教程:
但是在为我的根表完成此操作后,我不确定是否需要.Finish()
在将其添加到包含上表的表之前调用。
有没有人可以为我提供一个如何add_member
在嵌套表中使用命令的示例?
c++ - Flatbuffers:断言“off && off <= GetSize()”失败
实现了“自下而上”的 flatbuffers 编码器后,我收到以下错误消息:
我相信这可能是因为我在将每个都写入flatbuffers::Offset<MyTable>
数组后销毁了构建器,因此该表构建器以后不能拥有与它相关的这组函数?拥有一组构建器是解决此错误的最有效方法吗?
目前我正在latbuffers::FlatBufferBuilder
使用 my 在创建每个 flatbuffers::Offset 之间清除我,MyTableBuilder
因为这阻止了我遇到嵌套错误。
这是我试图理解 flatbuffers 的第三篇文章,感谢您的支持。
flatbuffers - 将各种语言的 FlatBuffer 转换为 JSON
FlatBuffer 是否允许将二进制 fbs 文件与 JSON 转换(当然模式是已知的)?
我的想法是在 FlatBuffer 中为管道和过滤器架构定义结构模式。FlatBuffer 文件也将在管道之间交换。但是,某些过滤器中的某些工具将要求我传递从 FlatBuffer 文件转换而来的普通旧 json 对象。而且我有几种语言要支持(C++、Python、Java、JS)。
我找到了一个似乎可以做到这一点的 javascript 库: https ://github.com/evanw/node-flatbuffers/
但它似乎被抛弃了,我对官方支持的方式很感兴趣。
java - flatbuffers c ++从缓冲区转换为仅适用于root_type的对象(而java拥有所有)
根据 flatbuffers 示例,在 c++ 上,生成 GetMonster 函数,因为 Monster 被定义为 root_type。显然 1 个模式只能有 1 个 root_type。这限制了每个模式只有 1 种类型可以直接从 buf 转换为 obj。与解包相同
而对于java来说,schema中定义的每个类型都会生成函数“getRootAs...”,非常方便。每种类型都可以直接从 ByteBuffer 轻松转换。
因此,在使用 c++ 的网络游戏用例中,有很多类型可以通过网络发送而没有直接关系。我们应该为每种类型定义一个模式文件吗?为了生成Get / Unpack?
PS我知道我可以自己做
但想知道为什么这种 Get/Unpack 转换功能不适用于所有类型,但仅适用于 c++ 中的 root_type?
c++ - FlatBuffers - 创建结构向量时出错
我对 flatbuffers 非常陌生,并且相信我正确地遵循了教程,但是根据我的需要对其进行了修改,但是我一生都无法弄清楚为什么会出现此错误:
另外,我刚刚注意到它也在投掷error: static assertion failed: T must be a scalar type
三次
平面缓冲区架构:
C++ 代码:
对此问题的任何帮助将不胜感激