diff --git a/include/cppkafka/topic_configuration.h b/include/cppkafka/topic_configuration.h index 2e9d705..aa56f84 100644 --- a/include/cppkafka/topic_configuration.h +++ b/include/cppkafka/topic_configuration.h @@ -1,26 +1,22 @@ #ifndef CPPKAFKA_TOPIC_CONFIGURATION_H #define CPPKAFKA_TOPIC_CONFIGURATION_H -#include #include #include +#include "clonable_ptr.h" namespace cppkafka { class TopicConfiguration { public: TopicConfiguration(); - TopicConfiguration(const TopicConfiguration& rhs); - TopicConfiguration(TopicConfiguration&& rhs) noexcept = default; - TopicConfiguration& operator=(const TopicConfiguration& rhs); - TopicConfiguration& operator=(TopicConfiguration&& rhs) noexcept = default; void set(const std::string& name, const std::string& value); rd_kafka_topic_conf_t* get_handle() const; private: - using HandlePtr = std::unique_ptr; + using HandlePtr = ClonablePtr; TopicConfiguration(rd_kafka_topic_conf_t* ptr); static HandlePtr make_handle(rd_kafka_topic_conf_t* ptr); diff --git a/src/topic_configuration.cpp b/src/topic_configuration.cpp index eaf761f..ae73024 100644 --- a/src/topic_configuration.cpp +++ b/src/topic_configuration.cpp @@ -16,16 +16,6 @@ TopicConfiguration::TopicConfiguration(rd_kafka_topic_conf_t* ptr) } -TopicConfiguration::TopicConfiguration(const TopicConfiguration& rhs) -: handle_(make_handle(rd_kafka_topic_conf_dup(rhs.handle_.get()))) { - -} - -TopicConfiguration& TopicConfiguration::operator=(const TopicConfiguration& rhs) { - handle_.reset(rd_kafka_topic_conf_dup(rhs.handle_.get())); - return *this; -} - void TopicConfiguration::set(const string& name, const string& value) { char error_buffer[512]; rd_kafka_conf_res_t result; @@ -41,7 +31,7 @@ rd_kafka_topic_conf_t* TopicConfiguration::get_handle() const { } TopicConfiguration::HandlePtr TopicConfiguration::make_handle(rd_kafka_topic_conf_t* ptr) { - return HandlePtr(ptr, &rd_kafka_topic_conf_destroy); + return HandlePtr(ptr, &rd_kafka_topic_conf_destroy, &rd_kafka_topic_conf_dup); } } // cppkafka