diff options
Diffstat (limited to 'kafka/protocol/produce.py')
-rw-r--r-- | kafka/protocol/produce.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/kafka/protocol/produce.py b/kafka/protocol/produce.py new file mode 100644 index 0000000..ef2f96e --- /dev/null +++ b/kafka/protocol/produce.py @@ -0,0 +1,29 @@ +from .message import MessageSet +from .struct import Struct +from .types import Int8, Int16, Int32, Int64, Bytes, String, Array, Schema + + +class ProduceResponse(Struct): + SCHEMA = Schema( + ('topics', Array( + ('topic', String('utf-8')), + ('partitions', Array( + ('partition', Int32), + ('error_code', Int16), + ('offset', Int64))))) + ) + + +class ProduceRequest(Struct): + API_KEY = 0 + API_VERSION = 0 + RESPONSE_TYPE = ProduceResponse + SCHEMA = Schema( + ('required_acks', Int16), + ('timeout', Int32), + ('topics', Array( + ('topic', String('utf-8')), + ('partitions', Array( + ('partition', Int32), + ('messages', MessageSet))))) + ) |