如何确定字符串是否是协议缓冲区对象

时间:2013-12-11 00:57:13

标签: protocol-buffers

我现在有一个存储普通字符串数据的位置,我希望将来在同一位置存储一个protobuf对象。

我的新代码是否有办法读取旧数据(纯字符串)并可靠地确定:“这不是protobuf对象”?

鉴于我无法可靠地确定其他格式的当前普通字符串数据(例如主机名)的格式(某些协议缓冲区对象可能类似于主机名,可能是任何东西),这似乎不可行正确?

1 个答案:

答案 0 :(得分:0)

您似乎尚未在该位置存储任何协议缓冲区数据。如何用一些特定的前缀标记新数据?

例如,生成GUID或只是一些随机的64位值,并在存储protobuf消息时将其添加到数据中。在阅读时,只需检查此标记是否存在。

通过改变标记的长度,您可以任意与现有数据发生任何冲突。