在cpp中的平面缓冲区中序列化对象

Serializing object in flatbuffers in cpp

我正在尝试使用平面缓冲区作为 master/slave 服务器之间的通信方式。我面临的问题是,在我将数据从 char* 读入 flatbuffer 后,我找不到将其写回 char* 的方法。第一个配置:

flatc --cpp --gen-mutable --gen-object-api -o ${OUT} ${IN}

这是令我困扰的代码:

char* buffer = <MY_FLATBUFFER_DATA>;
auto managedObject = GetMutableManagedObject(buffer);
makeChanges(managedObject);
char* newBuffer = managedObject.deserialize(); // This is my imaginative method

我希望能够反序列化已修改的对象并将其发送回从机。可能吗?或者我必须使用 "slower"(如教程所述)Pack/UnPack 方法?

(我不介意另一种回答方式)

是的,您需要 Pack/UnPack。 --gen-mutable 只允许非常有限的修改(一些标量),如果你想能够修改你需要的对象 api.