FromJsonVisitor& operator=(const FromJsonVisitor&) = delete;
- template<class T>
+ template<typename T>
void visit(const std::string& name, T& value)
{
json_object* object = nullptr;
value = json_object_get_string(object);
}
- template<class T>
+ template<typename T>
static void fromJsonObject(json_object* object, std::vector<T>& value)
{
checkType(object, json_type_array);
}
}
- template<class T, class = typename std::enable_if<isVisitable<T>::value>::type>
+ template<typename T, class = typename std::enable_if<isVisitable<T>::value>::type>
static void fromJsonObject(json_object* object, T& value)
{
checkType(object, json_type_object);
FromKVStoreVisitor& operator=(const FromKVStoreVisitor&) = delete;
- template<class T>
+ template<typename T>
void visit(const std::string& name, T& value)
{
getInternal(key(mKeyPrefix, name), value);
std::shared_ptr<KVStore> mStorePtr;
std::string mKeyPrefix;
- template<class T, class std::enable_if<!isVisitable<T>::value, int>::type = 0>
+ template<typename T, typename std::enable_if<!isVisitable<T>::value, int>::type = 0>
void getInternal(const std::string& name, T& value)
{
value = mStorePtr->get<T>(name);
}
- template<class T, class std::enable_if<isVisitable<T>::value, int>::type = 0>
+ template<typename T, typename std::enable_if<isVisitable<T>::value, int>::type = 0>
void getInternal(const std::string& name, T& value)
{
FromKVStoreVisitor visitor(*this, name);
return json_object_to_json_string(mObject);
}
- template<class T>
+ template<typename T>
void visit(const std::string& name, const T& value)
{
json_object_object_add(mObject, name.c_str(), toJsonObject(value));
return json_object_new_string(value.c_str());
}
- template<class T>
+ template<typename T>
static json_object* toJsonObject(const std::vector<T>& value)
{
json_object* array = json_object_new_array();
return array;
}
- template<class T, class = typename std::enable_if<isVisitable<T>::value>::type>
+ template<typename T, class = typename std::enable_if<isVisitable<T>::value>::type>
static json_object* toJsonObject(const T& value)
{
ToJsonVisitor visitor;
ToKVStoreVisitor& operator=(const ToKVStoreVisitor&) = delete;
- template<class T>
+ template<typename T>
void visit(const std::string& name, const T& value)
{
setInternal(key(mKeyPrefix, name), value);
std::string mKeyPrefix;
- template<class T, class std::enable_if<!isVisitable<T>::value, int>::type = 0>
+ template<typename T, typename std::enable_if<!isVisitable<T>::value, int>::type = 0>
void setInternal(const std::string& name, const T& value)
{
mStorePtr->set(name, value);
}
- template<class T, class std::enable_if<isVisitable<T>::value, int>::type = 0>
+ template<typename T, typename std::enable_if<isVisitable<T>::value, int>::type = 0>
void setInternal(const std::string& name, const T& value)
{
ToKVStoreVisitor visitor(*this, name);