Allow getting config options and add multiple overloads for set

This commit is contained in:
Matias Fontanini
2016-06-05 15:08:40 -07:00
parent efd2321828
commit 65a60f1690
11 changed files with 120 additions and 5 deletions

View File

@@ -0,0 +1,33 @@
#ifndef CPPKAFKA_CONFIGURATION_BASE_H
#define CPPKAFKA_CONFIGURATION_BASE_H
#include <string>
namespace cppkafka {
template <typename Concrete>
class ConfigurationBase {
public:
void set(const std::string& name, bool value) {
proxy_set(name, value ? "true" : "false");
}
// Overload for any integral value
template <typename T,
typename = typename std::enable_if<std::is_integral<T>::value>::type>
void set(const std::string& name, T value) {
proxy_set(name, std::to_string(value));
}
void set(const std::string& name, const char* value) {
proxy_set(name, value);
}
private:
void proxy_set(const std::string& name, const std::string& value) {
static_cast<Concrete&>(*this).set(name, value);
}
};
} // cppkafka
#endif // CPPKAFKA_CONFIGURATION_BASE_H