Added compile time check for store_offsets() api

This commit is contained in:
accelerated
2019-02-06 17:47:02 -05:00
parent 4f4c9e9c91
commit e19d84b839
3 changed files with 5 additions and 2 deletions

View File

@@ -291,7 +291,7 @@ public:
* \return The topic partition list * \return The topic partition list
*/ */
TopicPartitionList get_offsets_position(const TopicPartitionList& topic_partitions) const; TopicPartitionList get_offsets_position(const TopicPartitionList& topic_partitions) const;
#if (RD_KAFKA_VERSION >= RD_KAFKA_STORE_OFFSETS_SUPPORT_VERSION)
/** /**
* \brief Stores the offsets on the currently assigned topic/partitions (legacy). * \brief Stores the offsets on the currently assigned topic/partitions (legacy).
* *
@@ -312,7 +312,7 @@ public:
* \note When using this API it's recommended to set enable.auto.offset.store=false and enable.auto.commit=true. * \note When using this API it's recommended to set enable.auto.offset.store=false and enable.auto.commit=true.
*/ */
void store_offsets(const TopicPartitionList& topic_partitions) const; void store_offsets(const TopicPartitionList& topic_partitions) const;
#endif
/** /**
* \brief Stores the offset for this message (legacy). * \brief Stores the offset for this message (legacy).
* *

View File

@@ -50,5 +50,6 @@
#define RD_KAFKA_MESSAGE_LATENCY_SUPPORT_VERSION 0x000b0000 //v0.11.0.00 #define RD_KAFKA_MESSAGE_LATENCY_SUPPORT_VERSION 0x000b0000 //v0.11.0.00
#define RD_KAFKA_EVENT_STATS_SUPPORT_VERSION 0x000b0000 //v0.11.0.00 #define RD_KAFKA_EVENT_STATS_SUPPORT_VERSION 0x000b0000 //v0.11.0.00
#define RD_KAFKA_MESSAGE_STATUS_SUPPORT_VERSION 0x01000002 //v1.0.0.02 #define RD_KAFKA_MESSAGE_STATUS_SUPPORT_VERSION 0x01000002 //v1.0.0.02
#define RD_KAFKA_STORE_OFFSETS_SUPPORT_VERSION 0x00090501 //v0.9.5.01
#endif // CPPKAFKA_MACROS_H #endif // CPPKAFKA_MACROS_H

View File

@@ -200,6 +200,7 @@ Consumer::get_offsets_position(const TopicPartitionList& topic_partitions) const
return convert(topic_list_handle); return convert(topic_list_handle);
} }
#if (RD_KAFKA_VERSION >= RD_KAFKA_STORE_OFFSETS_SUPPORT_VERSION)
void Consumer::store_consumed_offsets() const { void Consumer::store_consumed_offsets() const {
store_offsets(get_offsets_position(get_assignment())); store_offsets(get_offsets_position(get_assignment()));
} }
@@ -209,6 +210,7 @@ void Consumer::store_offsets(const TopicPartitionList& topic_partitions) const {
rd_kafka_resp_err_t error = rd_kafka_offsets_store(get_handle(), topic_list_handle.get()); rd_kafka_resp_err_t error = rd_kafka_offsets_store(get_handle(), topic_list_handle.get());
check_error(error, topic_list_handle.get()); check_error(error, topic_list_handle.get());
} }
#endif
void Consumer::store_offset(const Message& msg) const { void Consumer::store_offset(const Message& msg) const {
rd_kafka_resp_err_t error = rd_kafka_offset_store(msg.get_handle()->rkt, msg.get_partition(), msg.get_offset()); rd_kafka_resp_err_t error = rd_kafka_offset_store(msg.get_handle()->rkt, msg.get_partition(), msg.get_offset());