对于ProtoBuffer常用到的功能是序列化和反序列化,所以相对熟悉的也是它的这两类函数:
序列化函数:
// Serialize the message and store it in the given string. All required
// fields must be set.
bool SerializeToString(string* output) const;
// Serialize the message and store it in the given byte array. All required
// fields must be set.
bool SerializeToArray(void* data, int size) const;
反序列化函数:
// Parse a protocol buffer contained in a string.
bool ParseFromString(const string& data);
// Parse a protocol buffer contained in an array of bytes.
bool ParseFromArray(const void* data, int size);
但是,偶尔会有打印包中所有字段值的需求,比如测试,这时候如果包结果又比较大,这时候one by one去写就是个苦力活了。
今天同事介绍了这个函数,感觉应付一些对打印的结果要求不太严格的场景还是不错的,毕竟太省时省力了:
// Like TextFormat::PrintToString
bool PrintToString(const Message& message, string* output);
这个函数能够将Message转换