扩展协议缓冲区

时间:2014-02-06 07:58:21

标签: c++ protocol-buffers

有没有办法在协议缓冲区生成的类方法中添加一些功能?目标是能够将消息添加到.proto文件,然后自动生成一个在每次数据更改时通过网络发送的类(例如,网络交换可以通过预先与另一端的同一个对等端编写的一些自定义类来管理)。为了实现这一点,我至少需要在set_方法中生成一些自定义代码,这些代码调用一些预定义的回调来通知缓冲区已被更改。

1 个答案:

答案 0 :(得分:2)

不,不支持。访问器都是内联方法,而不是虚拟方法,因此您无法覆盖它们。

你可以考虑编写一个自定义代码生成器,它使用额外的setter逻辑为每个类型生成包装器。基本上你会编写一个代码生成器插件,就像你试图支持一种新语言一样,但你实际上输出的C ++代码#includes常规C ++输出并定义了包装器类型。参见:

https://developers.google.com/protocol-buffers/docs/reference/other