Я пытаюсь использовать protobuf для создания службы с помощью RpcChannel и RpcController. Я говорил на языке руководство по Google Protobuf и:Компилятор google protobuf не генерирует класс для тега службы?
У меня есть образец файла прото так:
синтаксис = «proto2»;
message SearchRequest
{
required string Request = 1;
}
message SearchResponse
{
required string Response = 2;
}
service SearchService {
rpc Search (SearchRequest) returns (SearchResponse);
}
Тогда я скомпилировал с:
protoc --cpp_out=./ examples.proto
Я получил .h и .cc файлы. Но когда я ищу сгенерированный код, я нашел только классы для «Запрос» и «Ответ», но не класс для «SearchService»:
examples.pb.h:class SearchRequest;
examples.pb.h:class SearchResponse;
examples.pb.h:class SearchRequest : public ::google::protobuf::Message {
examples.pb.h: // @@protoc_insertion_point(class_scope:SearchRequest)
examples.pb.h:class SearchResponse : public ::google::protobuf::Message {
examples.pb.h: // @@protoc_insertion_point(class_scope:SearchResponse)
Направляющий язык веб-страницы предоставляется пример (https://developers.google.com/protocol-buffers/docs/proto#services), который требуется использовать класс «SearchService»: но в сгенерированном коде нет службы поиска. Руководство не предоставило полный образец использования RpcChannel/RpcController.
Так как я могу исправить пример, чтобы заставить его работать? Я искал google, но не нашел хорошего примера cpp, который дает полный образец того, как RpcChannel/RpcController может работать. Любые подсказки или ссылки?
Спасибо!
Спасибо, если КПГР по умолчанию не установлен, то почему protoc поддержка компиляции файла .proto, который «сервис» тег поддерживается? И как он используется, если я не получаю gRPC? Благодарю. –
Подумайте, как тег абстрактного интерфейса или абстрактную спецификацию RPC. С его помощью вы можете реализовать свой плагин - по существу, генератор кода - с информацией из ServiceDescriptor. – xosp7tom
И историческая причина. Хотя google - это open-sourcing, google решил разделить 1) часть сериализации 2) часть rpc. сначала была выпущена часть сериализации, а часть rpc намеренно оставлена для собственной реализации пользователя в то время. часть rpc google (grpc) позже/недавно открыта. – xosp7tom