如何将已经序列化的字节缓冲区添加到正在创建表向量的构建器中?

时间:2018-08-06 20:14:18

标签: flatbuffers

我正在使用Flatbuffers在Java中工作。我有一个向量表,类似:

table T2 {
    property : [T1];
}

table T1 {
    field1 : int;
    field2 : int;
}

因此,T1的记录已被序列化,并且ByteBuffers被缓存在Redis中。当我从redis取回它们(ByteBuffers)时,我想将这些记录添加到T2并创建表向量。由于所有这些T1记录均已序列化,因此我想知道构建平面缓冲区T2的最有效方法。我想我可以通过访问每个T1的字段并创建新对象来添加它。我相信这可能不是实现此目的的最有效方法。我希望是否有一种方法可以将T1的序列化字节缓冲区直接添加到生成器中,并获取它们对应的偏移量以传递给.createvectorOfTables()方法。

1 个答案:

答案 0 :(得分:1)

在您提到的场景中,您似乎要处理两个不同的缓冲区。在这种情况下,最好将其保留在架构中。可以尝试:

tsconfig.json

现在,当您完成编写T1时,只需将获得的缓冲区推入T1Buffertable中,然后创建这些缓冲区表的数组即可。 在读取期间,您可以获取每个T1Buffer,然后独立进行反序列化。