def _get_compressed(self):
"""Get a compressed representation of all current messages.
Returns a Message object with correct headers set and compressed
data in the value field.
"""
assert self.compression_type != CompressionType.NONE
tmp_mset = MessageSet(messages=self._messages)
uncompressed = bytearray(len(tmp_mset))
tmp_mset.pack_into(uncompressed, 0)
if self.compression_type == CompressionType.GZIP:
compressed = compression.encode_gzip(buffer(uncompressed))
elif self.compression_type == CompressionType.SNAPPY:
compressed = compression.encode_snappy(buffer(uncompressed))
else:
raise TypeError("Unknown compression: %s" % self.compression_type)
return Message(compressed, compression_type=self.compression_type)
评论列表
文章目录