serialization - 如何取回悬挂的物体
问题描述
我正在处理一个需要将 FlatBuffers 分成许多小块的大数据项目。我遇到了一些这样的情况。
架构:
table A {
number: int;
}
table B {
a: [A];
}
root_type B
代码:
flatbuffers::FlatBufferBuilder builder;
int num0 = 3;
int num1 = 1;
int num2 = 5;
int num3 = 7;
auto a0 = CreateA(builder, num0);
auto a1 = CreateA(builder, num1);
auto a2 = CreateA(builder, num2);
auto a3 = CreateA(builder, num3);
std::vector<flatbuffers::Offset<A>> A_vector;
A_vector.push_back(a0);
A_vector.push_back(a1);
auto B = builder.CreateVector(A_vector);
auto orc = CreateB(builder, B);
builder.Finish(orc);
如果由于某些原因我无法将 a2 和 a3 推回A_vector
,那么在这种情况下,a2 和 a3 也会被序列化吗?通过 序列化后如何取回 a2 和 a3 builder.GetBufferPointer()
?谢谢你的帮助。
解决方案
如果您在 FlatBuffer 中序列化一个对象并且不将其偏移量存储在任何地方,则无法访问它。您需要将其序列化为不同的 FlatBufferBuilder 实例。
推荐阅读
- testing - 如何使用带有 LOCUST 或 GATLİNG 的集成 Windows 身份验证 Web 应用程序测试 ASP.NET
- html - 如何迭代json对象?
- r - 使用 R 中 ggplot2 中的 geom_bar 图在类别之间创建空间和垂直线
- java - 删除未使用的依赖项后,Maven 项目未通过测试
- selenium-webdriver - 无法继续使用这段 Selenium 代码以在 CRM 中添加实体
- php - is_writable 为 NFS 共享返回 false,即使它对用户 www-data 是可写的
- machine-learning - 训练测试拆分的缺点
- java - 如何从通过 Google GNSSLogger 获取的参数计算伪距?
- netcdf - 我应该如何使用 CDO selyear?我得到一个四倍大的输出文件
- java - 为什么我们从 java 调用 kotlin 对象时会得到一个奇怪的方法名?