** Привет всем, я новичок в protobuf.Я пытаюсь понять основы здесь.Я создал образец прото-файла как Test.proto
в каталоге /path/to/Directory/
:
syntax = "proto2";
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}**
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
и скомпилировал его с помощью
protoc -I=/path/to/Directory/ --cpp_out=/path/to/Directory/ /path/to/Directory/Test.proto
. Это создало 2 файла Test.pb.h
и Test.pb.cc
,Теперь я вижу, что в классе Person
есть разные функции.Давайте просто возьмем функцию (полученную из строки required string name = 1;
файла Test.proto
)
Теперь компилятор делает свое дело и предоставляет следующие различные функции:
bool has_name() const;
void clear_name();
static const int kNameFieldNumber = 1;
const ::std::string& name() const;
void set_name(const ::std::string& value);
void set_name(::std::string&& value);
void set_name(const char* value);
void set_name(const char* value, size_t size);
::std::string* mutable_name();
::std::string* release_name();
void set_allocated_name(::std::string* name);
Теперь мой вопрос: Где я могу найти описания каждой функции и что они делают?