c – Protobuf:将set_allocated_ *删除分配的对象?
我有这个小的protobuf代码(非常简化,只有必需的包含):
message ParamsMessage { required int32 temperature = 1; } message MasterMessage { enum Type { GETPARAMS = 1; SENDPARAMS = 2;} required Type type = 1; optional ParamsMessage paramsMessage = 2; } 我现在以下列方式创建MasterMessage: ParamsMessage * params = new ParamsMessage(); params->set_temperature(22); MasterMessage master; master.set_type(MasterMessage::SENDPARAMS); master.set_allocated_paramsmessage(params); 问题是:在处理消息后,我有没有删除params消息,或者将原型交易给我?我在文档中找不到任何东西. 解决方法
自问问题以来我一直在找答案.也许有人对答案感兴趣.
从这里:https://developers.google.com/protocol-buffers/docs/reference/cpp-generated
这意味着:只要你不调用release_ *,protobuf将会处理删除对象.如果在处理Protobuf消息后需要对象,则需要使用release_ *进行相关处理,这将阻止Protobuf删除对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |