【发布时间】:2019-07-16 05:15:02
【问题描述】:
考虑这种情况。
我正在使用CreateXXX 生成的代码创建一个结构(flatbuffers::Table)。这会在 FlatBuffer 缓冲区上创建结构并给我偏移量。
然后我可以用GetBufferPointer() 获取内存块并传输它。
相反,如果我得到一个内存块,我可以使用 GetXXX 从中获取我的 struct(flatbuffers::Table)。
但是我得到这个结构后,如果我需要再次序列化它,我该怎么做呢?序列化后,我应该能够像以前一样传输该数据并对该数据执行 GetXXX。
flatbuffers::Parser parser;
parser.Parse(schema.c_str());
parser.SetRootType("license");
parser.Parse(j.c_str());
auto* buf = parser.builder_.GetBufferPointer();
auto li = flatbuffers::GetRoot<license>(buf);
std::cout << "ID: " << li->id()->c_str() << " Rand: " << li->rand()->c_str() << " Secret: " << li->secret()->c_str() << std::endl;
uint8_t* buf2 = ????????????
auto li2 = flatbuffers::GetRoot<license>(buf2);
std::cout << "ID: " << li2->id()->c_str() << " Rand: " << li2->rand()->c_str() << " Secret: " << li2->secret()->c_str() << std::endl;
【问题讨论】:
标签: c++ flatbuffers