2014-02-06 2 views
0

Есть ли способ добавить некоторые функции к методам класса, сгенерированным буферами протокола? Цель состоит в том, чтобы иметь возможность добавлять сообщение в .proto-файл, а затем автоматически генерировать класс, который передается по сети при каждом изменении данных (например, обмен через сеть может управляться каким-то специальным классом, написанным заранее с тем же одноранговым узлом на другом конце). Для этого мне нужно, по крайней мере, создать какой-то пользовательский код в методах set_, который вызывает некоторый предопределенный обратный вызов, чтобы уведомить об этом буфере.Расширение буферов протокола

ответ

1

Нет, это не поддерживается. Аксессоры - это встроенные методы, а не виртуальные, поэтому вы не можете их переопределить.

Можно было бы написать собственный генератор кода, который генерирует обертки вокруг каждого типа с дополнительной логикой установки. В принципе, вы должны написать плагин генератора кода, как если бы вы пытались поддерживать новый язык, но на самом деле выведете код на C++, который # включает обычный вывод C++ и определяет типы обёртки. См .:

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

Смежные вопросы