blob: 5adff10f21ec3c9961bbcc4fa46d6316f5a726ed [file] [log] [blame]
// Copyright 2017 The Chromium OS 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 "power_manager/common/cros_config_prefs_source.h"
#include <base/strings/string_util.h>
#include <utility>
namespace {
constexpr char kPowerConfigPath[] = "/power";
}
namespace power_manager {
CrosConfigPrefsSource::CrosConfigPrefsSource(
std::unique_ptr<brillo::CrosConfigInterface> config)
: config_(std::move(config)) {}
CrosConfigPrefsSource::~CrosConfigPrefsSource() {}
std::string CrosConfigPrefsSource::GetDescription() const {
return "<cros_config>";
}
bool CrosConfigPrefsSource::ReadPrefString(const std::string& name,
std::string* value_out) {
std::string prop_name;
base::ReplaceChars(name, "_", "-", &prop_name);
if (!config_->GetString(kPowerConfigPath, prop_name, value_out))
return false;
// Trim trailing whitespace to match FilePrefsStore::ReadPrefString().
base::TrimWhitespaceASCII(*value_out, base::TRIM_TRAILING, value_out);
return true;
}
} // namespace power_manager