在C++中使用protobuf和POCO

Working with protobuf and POCOs in C++

本文关键字:protobuf POCO C++      更新时间:2023-10-16

我想将protobuf用于我正在处理的C++项目。然而,我不喜欢使用protoc创建的自动生成类,更喜欢使用我已经拥有的POCO。这是因为POCO已经在代码的其他部分中使用,我希望以后能够轻松地切换序列化机制。但是在POCO和protobuf消息类之间手动编写转换器似乎是乏味和错误的。

我想知道是否有一种方法可以使用protobuf来创建一个序列化程序——一个自动生成的类,它将能够序列化和反序列化我的POCO,而不会对我的内部进行调试。

谢谢。

首先,你可能更喜欢Cap‘n Proto,它是由谷歌的一位前谷歌协议缓冲区维护人员创建的。无论如何,值得一探究竟。

但除此之外,您确实需要考虑为什么使用Google协议缓冲区。

如果你想实现前向和后向兼容性,并且能够打开、编辑、保存一个可能是其他人创建的对象,使用不同版本的协议缓冲区声明,然后发送给另一个人,使用甚至不同版本的声明。。。那么您只需要咬紧牙关,使用Google协议缓冲区编译器生成的C++。

它实际上不仅仅是一种序列化格式。它是专门设计的,随着时间的推移,可以轻松地使用不同版本的序列化。

如果您不需要这种灵活性,并且不喜欢生成的代码,则可能需要考虑使用不同的序列化工具。