mirror of
https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka.git
synced 2025-11-04 04:27:48 +00:00
Add initial consumer code
This commit is contained in:
53
src/topic_partition_list.cpp
Normal file
53
src/topic_partition_list.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
#include "topic_partition_list.h"
|
||||
#include "topic_partition.h"
|
||||
|
||||
namespace cppkafka {
|
||||
|
||||
const size_t TopicPartitionList::DEFAULT_CONTAINER_SIZE = 5;
|
||||
|
||||
TopicPartitionList::TopicPartitionList()
|
||||
: TopicPartitionList(DEFAULT_CONTAINER_SIZE) {
|
||||
|
||||
}
|
||||
|
||||
TopicPartitionList::TopicPartitionList(size_t size)
|
||||
: handle_(make_handle(rd_kafka_topic_partition_list_new(size))) {
|
||||
|
||||
}
|
||||
|
||||
TopicPartitionList::TopicPartitionList(const TopicPartitionList& rhs)
|
||||
: handle_(make_handle(rd_kafka_topic_partition_list_copy(rhs.get_handle()))) {
|
||||
|
||||
}
|
||||
|
||||
TopicPartitionList& TopicPartitionList::operator=(const TopicPartitionList& rhs) {
|
||||
handle_.reset(rd_kafka_topic_partition_list_copy(rhs.get_handle()));
|
||||
return *this;
|
||||
}
|
||||
|
||||
void TopicPartitionList::add(const TopicPartition& topic_partition) {
|
||||
rd_kafka_topic_partition_t* element = nullptr;
|
||||
element = rd_kafka_topic_partition_list_add(handle_.get(),
|
||||
topic_partition.get_topic().data(),
|
||||
topic_partition.get_partition());
|
||||
element->offset = topic_partition.get_offset();
|
||||
}
|
||||
|
||||
size_t TopicPartitionList::size() const {
|
||||
return handle_->cnt;
|
||||
}
|
||||
|
||||
bool TopicPartitionList::empty() const {
|
||||
return size() == 0;
|
||||
}
|
||||
|
||||
rd_kafka_topic_partition_list_t* TopicPartitionList::get_handle() const {
|
||||
return handle_.get();
|
||||
}
|
||||
|
||||
TopicPartitionList::HandlePtr
|
||||
TopicPartitionList::make_handle(rd_kafka_topic_partition_list_t* ptr) {
|
||||
return HandlePtr(ptr, &rd_kafka_topic_partition_list_destroy);
|
||||
}
|
||||
|
||||
} // cppkafka
|
||||
Reference in New Issue
Block a user