2014-02-06 247 views
0

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

回答

1

不,不支持。访问器都是内联方法,不是虚拟的,所以你不能覆盖它们。

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

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