blob: 63eec3d99996c7b61d2c2f82f36e02f0a48bdc56 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/mirroring/service/value_util.h"
namespace mirroring {
bool GetInt(const base::Value& value, const std::string& key, int32_t* result) {
auto* found = value.FindKey(key);
if (!found || found->is_none())
return true;
if (found->is_int()) {
*result = found->GetInt();
return true;
}
return false;
}
bool GetDouble(const base::Value& value,
const std::string& key,
double* result) {
auto* found = value.FindKey(key);
if (!found || found->is_none())
return true;
if (found->is_double()) {
*result = found->GetDouble();
return true;
}
if (found->is_int()) {
*result = found->GetInt();
return true;
}
return false;
}
bool GetString(const base::Value& value,
const std::string& key,
std::string* result) {
auto* found = value.FindKey(key);
if (!found || found->is_none())
return true;
if (found->is_string()) {
*result = found->GetString();
return true;
}
return false;
}
bool GetBool(const base::Value& value, const std::string& key, bool* result) {
auto* found = value.FindKey(key);
if (!found || found->is_none())
return true;
if (found->is_bool()) {
*result = found->GetBool();
return true;
}
return false;
}
bool GetIntArray(const base::Value& value,
const std::string& key,
std::vector<int32_t>* result) {
auto* found = value.FindKey(key);
if (!found || found->is_none())
return true;
if (!found->is_list())
return false;
for (const auto& number_value : found->GetList()) {
if (number_value.is_int())
result->emplace_back(number_value.GetInt());
else
return false;
}
return true;
}
bool GetStringArray(const base::Value& value,
const std::string& key,
std::vector<std::string>* result) {
auto* found = value.FindKey(key);
if (!found || found->is_none())
return true;
if (!found->is_list())
return false;
for (const auto& string_value : found->GetList()) {
if (string_value.is_string())
result->emplace_back(string_value.GetString());
else
return false;
}
return true;
}
} // namespace mirroring