在 protobuf 中添加 int64 和 int32
Adding int64 and int32 in protobuf
如何在protobuff中添加int64和int32的元素
message PDBparam
{
repeated string paramData=1;
required int64 HealthID=2;
required int32 OccCount=3;
optional bytes wci=4;
}
要添加 paramData,我可以使用下面的字符串函数调用,但我应该使用其他 3 个参数。
//add -param data
add_paramdata("param_1");
同样,我应该使用什么函数调用来获取所有这些变量中的数据。
这是 protoc
为您的文件的 HealthID 字段生成的相关函数:
// required int64 HealthID = 2;
inline bool has_healthid() const;
inline void clear_healthid();
static const int kHealthIDFieldNumber = 2;
inline ::google::protobuf::int64 healthid() const;
inline void set_healthid(::google::protobuf::int64 value);
您使用 set_healthid() 函数设置 healtid,然后使用 healthid() returns 它。将为其他字段生成类似的函数。
由于可以有多个 paramData
,因此处理方式略有不同,您需要告诉它您想要获取或设置其中的哪一个(通过索引给出)。例如遍历所有这些:
for (int i = 0; i < buf.paramdata_size(); i++) {
const std::string &pd = buf.paramdata(i);
//use pd
}
如何在protobuff中添加int64和int32的元素
message PDBparam
{
repeated string paramData=1;
required int64 HealthID=2;
required int32 OccCount=3;
optional bytes wci=4;
}
要添加 paramData,我可以使用下面的字符串函数调用,但我应该使用其他 3 个参数。
//add -param data
add_paramdata("param_1");
同样,我应该使用什么函数调用来获取所有这些变量中的数据。
这是 protoc
为您的文件的 HealthID 字段生成的相关函数:
// required int64 HealthID = 2;
inline bool has_healthid() const;
inline void clear_healthid();
static const int kHealthIDFieldNumber = 2;
inline ::google::protobuf::int64 healthid() const;
inline void set_healthid(::google::protobuf::int64 value);
您使用 set_healthid() 函数设置 healtid,然后使用 healthid() returns 它。将为其他字段生成类似的函数。
由于可以有多个 paramData
,因此处理方式略有不同,您需要告诉它您想要获取或设置其中的哪一个(通过索引给出)。例如遍历所有这些:
for (int i = 0; i < buf.paramdata_size(); i++) {
const std::string &pd = buf.paramdata(i);
//use pd
}