summaryrefslogtreecommitdiff
path: root/kafka/protocol.py
diff options
context:
space:
mode:
authorPatrick Lucas <plucas@yelp.com>2014-05-03 11:27:57 -0700
committerPatrick Lucas <plucas@yelp.com>2014-05-03 16:09:33 -0700
commit671b74ab2e035a2f2ba7f90419794f6dbec08366 (patch)
tree001041ce79d2f87b6d2d8b20dcaa28aed3588967 /kafka/protocol.py
parent2415609ce0899ef53e761e7ccb13177782d46c4e (diff)
downloadkafka-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.py23
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)