对于C++ protobuf 自定义数据类型的赋值,有两种方式
- set_allocate_XXX
- 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);