【发布时间】:2019-02-06 19:36:08
【问题描述】:
**大家好,
我是 protobuf 的新手。我试图了解这里的基础知识。
我在目录/path/to/Directory/ 中创建了示例原型文件Test.proto:
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 类中有不同的功能。让我们只取函数(源自Test.proto 文件的required string name = 1; 行)
现在编译器完成了它并提供了这些不同的功能:
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);
现在我的问题是:我在哪里可以找到每个函数的描述以及它们的作用?
【问题讨论】:
-
具体来说我想知道
mutable_name()和release_name()是做什么的?
标签: c++ protoc protocol-buffers