diff options
author | Patrick Lucas <plucas@yelp.com> | 2014-05-03 11:27:57 -0700 |
---|---|---|
committer | Patrick Lucas <plucas@yelp.com> | 2014-05-03 16:09:33 -0700 |
commit | 671b74ab2e035a2f2ba7f90419794f6dbec08366 (patch) | |
tree | 001041ce79d2f87b6d2d8b20dcaa28aed3588967 /kafka/protocol.py | |
parent | 2415609ce0899ef53e761e7ccb13177782d46c4e (diff) | |
download | kafka-python-671b74ab2e035a2f2ba7f90419794f6dbec08366.tar.gz |
Add 'codec' parameter to Producer
Adds a codec parameter to Producer.__init__ that lets the user choose
a compression codec to use for all messages sent by it.
Diffstat (limited to 'kafka/protocol.py')
-rw-r--r-- | kafka/protocol.py | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/kafka/protocol.py b/kafka/protocol.py index 25be023..10557be 100644 --- a/kafka/protocol.py +++ b/kafka/protocol.py @@ -18,6 +18,12 @@ from kafka.util import ( log = logging.getLogger("kafka") +ATTRIBUTE_CODEC_MASK = 0x03 +CODEC_NONE = 0x00 +CODEC_GZIP = 0x01 +CODEC_SNAPPY = 0x02 +ALL_CODECS = (CODEC_NONE, CODEC_GZIP, CODEC_SNAPPY) + class KafkaProtocol(object): """ @@ -32,11 +38,6 @@ class KafkaProtocol(object): OFFSET_COMMIT_KEY = 8 OFFSET_FETCH_KEY = 9 - ATTRIBUTE_CODEC_MASK = 0x03 - CODEC_NONE = 0x00 - CODEC_GZIP = 0x01 - CODEC_SNAPPY = 0x02 - ################### # Private API # ################### @@ -151,17 +152,17 @@ class KafkaProtocol(object): (key, cur) = read_int_string(data, cur) (value, cur) = read_int_string(data, cur) - codec = att & KafkaProtocol.ATTRIBUTE_CODEC_MASK + codec = att & ATTRIBUTE_CODEC_MASK - if codec == KafkaProtocol.CODEC_NONE: + if codec == CODEC_NONE: yield (offset, Message(magic, att, key, value)) - elif codec == KafkaProtocol.CODEC_GZIP: + elif codec == CODEC_GZIP: gz = gzip_decode(value) for (offset, msg) in KafkaProtocol._decode_message_set_iter(gz): yield (offset, msg) - elif codec == KafkaProtocol.CODEC_SNAPPY: + elif codec == CODEC_SNAPPY: snp = snappy_decode(value) for (offset, msg) in KafkaProtocol._decode_message_set_iter(snp): yield (offset, msg) @@ -544,7 +545,7 @@ def create_gzip_message(payloads, key=None): [create_message(payload) for payload in payloads]) gzipped = gzip_encode(message_set) - codec = KafkaProtocol.ATTRIBUTE_CODEC_MASK & KafkaProtocol.CODEC_GZIP + codec = ATTRIBUTE_CODEC_MASK & CODEC_GZIP return Message(0, 0x00 | codec, key, gzipped) @@ -565,6 +566,6 @@ def create_snappy_message(payloads, key=None): [create_message(payload) for payload in payloads]) snapped = snappy_encode(message_set) - codec = KafkaProtocol.ATTRIBUTE_CODEC_MASK & KafkaProtocol.CODEC_SNAPPY + codec = ATTRIBUTE_CODEC_MASK & CODEC_SNAPPY return Message(0, 0x00 | codec, key, snapped) |