如何在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");
类似地,我应该使用什么函数调用来获取所有这些变量中的数据。
答案 0 :(得分:0)
以下是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()返回它。将为其他字段生成类似的函数。
由于可能有几个paramData
,它的处理方式有所不同,你需要告诉它你想要获取或设置的索引中的哪一个。例如迭代所有这些:
for (int i = 0; i < buf.paramdata_size(); i++) {
const std::string &pd = buf.paramdata(i);
//use pd
}