有没有办法从 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 库。至少 nanopb和 pbtools生成简单的结构:
/*纳米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/