Я генерирую код с использованием protobuf C ++ генератора кода.
В моем прото-файле я расширяю параметры с именем «myOptions» ниже.
Я хочу получить опцию TMP без использования «myOptions».
Потому что я не могу включить example.pb.h
Обычно я могу получить опцию с использованием заголовка прото, как
fieldDesc->options().GetExtension(myOptions).tmp();
Но, как я сказал выше, я не могу включить заголовок, включающий «myOption»
Я могу получить строку "Отладка приветствия", как показано ниже
hello ---- 51000 {
1: 1
}
с использованием
fieldDesc->options().DebugString();
А также я могу получить поля myOptions
message MyOptions {
optional bool TMP = 1;
}
с помощью
fieldDesc->file()->FindExtensionByName("myOptions")->message_type()->DebugString();
Я бегу arround, но я не нашел способа добраться до поля tmp, кроме разбора строк?
//Example.proto
//option message
message MyOptions{
optional bool TMP = 1;
}
extend google.protobuf.FieldOptions {
optional MyOptions myOptions = 50000;
}
message Example{
optional Hello hello =1 [(myOptions).TMP = true];
}