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

Serializing object in flatbuffers in cpp

本文关键字:序列化 对象 缓冲区 cpp 平面      更新时间:2023-10-16

我正在尝试使用flatbuffers作为主/从服务器之间进行通信的一种方式。我面临的问题是,在将数据从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

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

(我不介意另一种方法的答案(

是的,您需要打包/取消打包。 --gen-mutable 只允许非常有限的修改(一些标量(,如果你想能够修改你需要的对象 API 的所有内容。