Может кто-нибудь дать мне пример упаковки \ распаковки сообщения с повторяющимся под-сообщением в protobuf-c ?
Официальная документация в пусто по этому вопросу.
message B { required int64 i = 1; }; message A { repeated B numbers = 1; }; A a; a.ParseFromString(<str>) for (int i = 0; i < a.numbers_size(); ++i) { const B& b = a.numbers(i); printf("%d\n", b.i()); }
Раздел «Чтение сообщения» учебника Google по С ++ содержит соответствующий пример кода: http://code.google.com/apis/protocolbuffers/docs/cpptutorial.html
Кроме того, for_each в STL также работает нормально (синтаксический сахар, более или менее): std ::for_each (a.numbers (). begin (), a.numbers (). end (), [] (const B & b) {std :: cout << bi () << std :: endl;}); </p>