2014-02-06 63 views
0

有沒有辦法給協議緩衝區生成的類方法添加一些功能?我們的目標是能夠將消息添加到.proto文件,然後自動生成一個通過網絡在每次數據更改時發送的類(例如,網絡交換可以由預先使用另一端上的同一對等寫入的某個自定義類來管理)。爲了實現這一點,我將至少需要在set_方法中生成一些自定義代碼,這些代碼調用一些預定義的回調來通知該緩衝區已更改。擴展協議緩衝區

回答

1

不,不支持。訪問器都是內聯方法,不是虛擬的,所以你不能覆蓋它們。

您可以考慮編寫一個自定義代碼生成器,它使用附加的setter邏輯在每個類型周圍生成包裝。基本上你會編寫一個代碼生成器插件,就好像你試圖支持一種新的語言一樣,但是你實際上會輸出C++代碼,它包含常規的C++輸出並定義包裝器類型。參見:

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