Есть ли способ получить расширения protobuf без GetExtension () для параметров? - PullRequest
0 голосов
/ 07 января 2019

Я генерирую код с использованием 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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...