Protobuf - 在自定义消息类型中找不到serializetoarray

时间:2015-06-03 14:15:46

标签: protocol-buffers

我有一个test.proto

中定义的protobuf的示例消息类型
message SearchRequest {
required string query = 1;
optional int32 page_number = 2;
optional int32 result_per_page = 3; 
}

在.cpp中,我正在尝试做类似的事情:

SearchRequest req;
//some code
IoBuffer buf;
size_t len = req.byteSize();

req.SerializeToArray(buf, len);

但我在.pb.cc文件中看不到SerializeToArray,我只能找到SerializeWithCachedSizes

1 个答案:

答案 0 :(得分:0)

大多数序列化和解析方法都是从基类google::protobuf::Messagegoogle::protobuf::MessageLite继承而来的。它们都是虚拟方法SerializeWithCachedSizes()SerializeWithCachedSizesToArray()ByteSize()和(用于解析)MergePartialFromCodedStream()的包装器(但您不应该直接使用这些虚方法,除了ByteSize())。