From b768d52791b40ba84446600c42b9b9e7ae3b10aa Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Sun, 14 Aug 2016 15:49:23 -0700 Subject: [PATCH] Take key before value on Producer::produce --- include/cppkafka/producer.h | 14 +++++++------- src/producer.cpp | 12 ++++++------ tests/producer_test.cpp | 6 +++--- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/cppkafka/producer.h b/include/cppkafka/producer.h index f7d99a3..87f83c6 100644 --- a/include/cppkafka/producer.h +++ b/include/cppkafka/producer.h @@ -75,7 +75,7 @@ class TopicConfiguration; * producer.produce(topic, Partition(), payload); * * // Write using a key on a fixed partition (42) - * producer.produce(topic, 42, payload, key); + * producer.produce(topic, 42, key, payload); * * \endcode */ @@ -119,23 +119,23 @@ public: * * \param topic The topic to write the message to * \param partition The partition to write the message to - * \param payload The message payload * \param key The message key + * \param payload The message payload */ - void produce(const Topic& topic, const Partition& partition, const Buffer& payload, - const Buffer& key); + void produce(const Topic& topic, const Partition& partition, const Buffer& key, + const Buffer& payload); /** * Produces a message * * \param topic The topic to write the message to * \param partition The partition to write the message to - * \param payload The message payload * \param key The message key + * \param payload The message payload * \param user_data The opaque data pointer to be used (accesible via Message::private_data) */ - void produce(const Topic& topic, const Partition& partition, const Buffer& payload, - const Buffer& key, void* user_data); + void produce(const Topic& topic, const Partition& partition, const Buffer& key, + const Buffer& payload, void* user_data); /** * \brief Polls on this handle diff --git a/src/producer.cpp b/src/producer.cpp index 5e9117a..63dcc8b 100644 --- a/src/producer.cpp +++ b/src/producer.cpp @@ -61,16 +61,16 @@ Producer::PayloadPolicy Producer::get_payload_policy() const { } void Producer::produce(const Topic& topic, const Partition& partition, const Buffer& payload) { - produce(topic, partition, payload, Buffer{} /*key*/, nullptr /*user_data*/); + produce(topic, partition, Buffer{} /*key*/, payload, nullptr /*user_data*/); } -void Producer::produce(const Topic& topic, const Partition& partition, const Buffer& payload, - const Buffer& key) { - produce(topic, partition, payload, key, nullptr /*user_data*/); +void Producer::produce(const Topic& topic, const Partition& partition, const Buffer& key, + const Buffer& payload) { + produce(topic, partition, key, payload, nullptr /*user_data*/); } -void Producer::produce(const Topic& topic, const Partition& partition, const Buffer& payload, - const Buffer& key, void* user_data) { +void Producer::produce(const Topic& topic, const Partition& partition, const Buffer& key, + const Buffer& payload, void* user_data) { void* payload_ptr = (void*)payload.get_data(); void* key_ptr = (void*)key.get_data(); const int policy = static_cast(message_payload_policy_); diff --git a/tests/producer_test.cpp b/tests/producer_test.cpp index 98074bf..572d6b6 100644 --- a/tests/producer_test.cpp +++ b/tests/producer_test.cpp @@ -146,7 +146,7 @@ TEST_F(ProducerTest, OneMessageUsingKey) { Topic topic = producer.get_topic(KAFKA_TOPIC); string payload = "Hello world! 2"; string key = "such key"; - producer.produce(topic, partition, payload, key); + producer.produce(topic, partition, key, payload); runner.try_join(); const auto& messages = runner.get_messages(); @@ -223,7 +223,7 @@ TEST_F(ProducerTest, Callbacks) { Producer producer(move(config)); Topic topic = producer.get_topic(KAFKA_TOPIC, topic_config); - producer.produce(topic, {}, payload, key); + producer.produce(topic, {}, key, payload); producer.poll(); runner.try_join(); @@ -265,7 +265,7 @@ TEST_F(ProducerTest, PartitionerCallbackOnDefaultTopicConfig) { Producer producer(move(config)); Topic topic = producer.get_topic(KAFKA_TOPIC); - producer.produce(topic, {}, payload, key); + producer.produce(topic, {}, key, payload); producer.poll(); runner.try_join();