在protobuf中添加int64和int32

时间:2015-08-21 10:00:04

标签: c++ protocol-buffers protobuf-net

如何在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");

类似地,我应该使用什么函数调用来获取所有这些变量中的数据。

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
 }