gpt4 book ai didi

c++ - 如何使用 Protocol Buffers 创建动态消息?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:52:31 24 4
gpt4 key购买 nike

假设我们想创建我们的消息,而不是使用任何预先存在的 .proto 文件,并从它们编译出 cpp/cxx/h 文件。我们希望将 protobuf 严格用作库。例如,我们得到了(在一些我们只知道的格式中)消息描述:一个名为 MyMessage 的消息必须有 MyIntFiels 和可选的 MyStringFiels。如何创建这样的消息?例如,用保存到 .bin 的简单数据填充它,然后从该二进制文件中读取其内容?

我看遍了dynamic_message.h help description和 DescriptorPool 等等,但没有看到如何向消息添加/删除字段,也没有办法将描述的动态消息添加到 DescriptorPool。

谁能解释一下?

最佳答案

简短回答:不能那样使用。

overview page Protobuf 说:

XML is also – to some extent – self-describing. A protocol buffer is only meaningful if you have the message definition (the .proto file).

这意味着 Protobuf 的全部意义在于抛弃 self 描述性以支持解析速度 ==> 创建 self 描述消息并不是它的目的。

考虑使用 XML 或 JSON 或任何其他序列化格式。如果需要保护,您可以使用对称加密和/或 lzip 压缩。

关于c++ - 如何使用 Protocol Buffers 创建动态消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com