Вызов метода установки и получения на основе файла прото - PullRequest
0 голосов
/ 08 апреля 2020

Я только начал работать с GRP C, и у меня возникли проблемы с настройкой и получением параметра.

Вот как я объявил свой файл протока:

syntax="proto3";

package student;

message Student {
  string name = 1;
   int32 age = 2;
}

Затем я скомпилировал чтобы сгенерировать заголовок и cpp файлы, используя команду:

protoc -I=./ --cpp_out=./ ./student.proto

Теперь, как я устанавливаю и получаю возраст ученика:

#include <stdio.h>
#include "student.pb.h"

int main() {
      puts("Hello");
      // Now set and get the age
      return 0;
}

1 Ответ

0 голосов
/ 08 апреля 2020

Вот пример C ++ в соответствии с вашим форматом (сериализация и десериализация):

int main()
{
    // Serailization

    student::Student s1;
    s1.set_name("XYZ");
    s1.set_age(20);

    const auto serializedData = s1.SerializeAsString();

    // Send/Store Serialized Data

    // Deserialization

    student::Student s2;
    if ( !s2.ParseFromString( serializedData ) )
    {
        std::cerr << "Deserialzation failed!\n";
        return -1;
    }

    std::cout << "Name: " << s2.name() << '\n';
    std::cout << "Age : " << s2.age() << '\n';

    return 0;
}

Вывод:

Name: XYZ
Age : 20
...