在 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
 }