如何读取由Google :: protobuf :: io :: CodedOutputStream :: WriteVarint32ToArray编写的数据

时间:2018-09-26 14:43:37

标签: c++ protocol-buffers

我在google::protobuf::io::CodedOutputStream中使用此方法将可变长度编码的整数写入缓冲区:

static uint8 * WriteVarint32ToArray(uint32 value, uint8 * target)

读取相同值的对应方法是什么?

我在文档中看到了这些

static const uint8 * ReadLittleEndian32FromArray(const uint8 * buffer, uint32 * value)
static const uint8 * ReadLittleEndian64FromArray(const uint8 * buffer, uint64 * value)

但是似乎没有一个可以满足我的需求。我期待有ReadVarint32FromArray,但是这似乎不可用。由于我读的是一个内存缓冲区而不是一个流,因此我需要一种静态方法,如写该方法。

文档:https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.coded_stream

1 个答案:

答案 0 :(得分:2)

CodedInputStream::ReadVarint32。没有static版本,您实际上需要实例化数组支持的CodedInputStream;有一个构造函数采用指针和大小。