c++ - 在cpp中的Flatbuffers中序列化对象

标签 c++ flatbuffers

我正在尝试使用 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的所有内容。

关于c++ - 在cpp中的Flatbuffers中序列化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60139407/

相关文章:

c++ - fprintf 没有将 "%"写入文件

java - 在 Java 中将编码的 FlatBuffers 表添加到父级

c# - FlatBuffers:C++ 编码与 C# 编码,C# 解码端到端示例

c++ - 从 TS 到 C++ 的 FlatBuffers 不起作用

c++ - 指向指针 vector 的 vector

c++ - 使用 boost::program_options 打印普通和位置参数的帮助

javascript - 如何将 javascript 数组序列化为 google flatbuffers?

java - Flatbuffers:如何构建嵌套表?

c++ - Boost::bind 一个 sigaction 函数引用到一个实例

c++ - 用户定义类的哈希函数。如何交 friend ? :)