c++ - 来自 Protocol Buffer 消息的普通结构

标签 c++ protocol-buffers

有没有办法从 C++ 中的 Protocol Buffer 消息中获取一个简单的结构?
IE。

struct PlainFoo {
  int32_t bar;
  float baz;
};
message Foo {
  required int32 bar = 1;
  required float baz = 2;
}
我通过网络在 Protocol Buffer 中获取了一些数据,我希望能够将其添加到其他类似数据中,并将其存储在紧凑的表示中以供内部使用,而无需基本上复制代码中的消息声明。
我知道我可以使用生成的消息类本身,但它有一堆内部成员,我不想四处走动。
有问题的消息只有必填字段。

最佳答案

我不知道会生成普通结构的 C++ protobuf 库,但也有可以在 C++ 代码中使用的 C 库。至少 nanopbpbtools生成简单的结构:
/*纳米pb */
typedef 结构 _Foo {
int32_t 条形图;
float baz;
} 富;

/* pbtools */
结构 Foo_t {
int32_t 条形图;
float baz;
};

使用 nanopb,您还可以选择使用 PB_BIND() 连接来自 .proto 的标签号定义文件到您自己的代码中定义的结构。如果您想将代码与接口(interface)规范分离,这将很有用,并允许例如添加未序列化的额外字段。

关于c++ - 来自 Protocol Buffer 消息的普通结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64558881/

相关文章:

c++ - 为什么 waveOutWrite() 会在调试堆中导致异常?

c++ - 有一个指向项目实例的共享指针列表被转换为基类什么是将项目分类到单独列表中的转换选项?

c# - protobuf3 中的重复 Int32Value(可为空的 int 数组)

java - Java读取protobuf消息时出现异常

c++ - 解释器在跟踪中创建对象的拷贝

c++ - 函数调用中的双括号有什么作用?

c++ - c和c++头文件的一些问题

java - 在 java 和 scala 中使用 protobufs 的问题

java - Thrift、Protocol Buffers、JSON、EJB、其他的性能比较?

java - 如何使用protobuf-gradle-plugin指定Protobuf路径