C++ protobuf 自定义数据类型的赋值

对于C++ protobuf 自定义数据类型的赋值,有两种方式

  1. set_allocate_XXX
  2. mutable_XXX
    举例说明
message SAT_JSON_CONFIG
{
required int32 AxisYMax 	= 1;
required int32 AxisYMin 	= 2;
}
message SAT_GET_SAT_CONFIG_RSP
{
required  SAT_JSON_CONFIG satJsonConfig = 1;
}

方法一

//系统会自动释放空间,不需要手动delete
SAT_JSON_CONFIG *p_SatJsonConfig = new SAT_JSON_CONFIG();
//给SAT_JSON_CONFIG赋值
GetJsonFile(p_SatJsonConfig);
//创建SAT_GET_SAT_CONFIG_RSP ,系统分配空间
SAT_GET_SAT_CONFIG_RSP *p_SatGetSatConfigRsp = m_NetMsg.mutable_satgetsatconfigrsp();
//赋值给系统分配的空间
p_SatGetSatConfigRsp->set_allocated_satjsonconfig(p_SatJsonConfig);

方法二

//创建SAT_GET_SAT_CONFIG_RSP ,系统分配空间
SAT_GET_SAT_CONFIG_RSP *p_SatGetSatConfigRsp = netMsg.mutable_satgetsatconfigrsp();
//创建SAT_JSON_CONFIG , 系统分配空间
SAT_JSON_CONFIG *p_SatJsonConfig = p_SatGetSatConfigRsp->mutable_satjsonconfig();
//给SAT_JSON_CONFIG赋值
GetJsonFile(p_SatJsonConfig);

猜你喜欢

转载自blog.csdn.net/mafucun1988/article/details/84823850