Thrift之TProtocol类体系原理和源码详细解析之紧凑协议类TCompactProtocolT(TCompactProtocol).docVIP

  • 0
  • 0
  • 约7.76千字
  • 约 9页
  • 2019-03-17 发布于江苏
  • 举报

Thrift之TProtocol类体系原理和源码详细解析之紧凑协议类TCompactProtocolT(TCompactProtocol).doc

这个协议类采用了zigzag?编码,这种编码是基于Variable-length?quantity编码提出来的,因为Variable-length?quantity编码对于负数的编码都需要很长的字节数,而zigzag?编码对于绝对值小的数字,无论正负都可以采用较少的字节来表示,充分利用了?Varint技术。所以这个协议类采用zigzag?编码可以节省传输空间,使数据的传输效率更高。至于zigzag具体的编码实现方式可以网上查查,其实就是把从低位到最后一个还存在1(二进制)的最高位表示出来就可以了。这个协议类对外提供的方法和上面介绍的二进制协议相同,这样可以很方便使用者从一种协议改变到另一种协议。 下面我同样结合scribe提供的Log方法来分析这个协议类的功能,不过不会像上面二进制协议在把整个过程分析了,我只会分析与协议相关的部分了,分析一些比较难懂的一些函数功能,分析的思路还是按照函数调用过程来分析。 首先还是分析writeMessageBegin函数,下面是这个函数的实现代码: 1 template class Transport_ uint32_t TCompactProtocolTTransport_::writeMessageBegin( 2 3 const std::string name, const TMessageType messageType,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档