blob: dda278350968c431c4e337015f70b44e5e5e1b24 [file] [log] [blame]
// Copyright (c) 2012 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.
#ifndef POWER_MANAGER_COMMON_UTIL_H_
#define POWER_MANAGER_COMMON_UTIL_H_
#include <string>
#include <vector>
#include <base/files/file_path.h>
#include <base/time/time.h>
namespace power_manager {
namespace util {
// Clamps |percent| in the range [0.0, 100.0].
double ClampPercent(double percent);
// Returns |delta| as a string of the format "4h3m45s".
std::string TimeDeltaToString(base::TimeDelta delta);
// Writes the given buffer into the file, overwriting any data that was
// previously there. Returns true if all bytes are written or false otherwise.
bool WriteFileFully(const base::FilePath& filename, const char* data, int size);
// Writes the base-10 representation of |value| to |path| without a trailing
// newline. Logs an error and returns false on failure.
bool WriteInt64File(const base::FilePath& path, int64_t value);
// Reads a string value from |path| to |value|, ignoring trailing whitespace.
// Logs an error and returns false on failure.
bool ReadStringFile(const base::FilePath& path, std::string* value_out);
// Reads a string value from |path| to |value|, ignoring trailing whitespace.
// Returns false on failure without error logging.
bool MaybeReadStringFile(const base::FilePath& path, std::string* value_out);
// Reads a base-10 int64 value from |path| to |value|, ignoring trailing
// whitespace. Logs an error and returns false on failure.
bool ReadInt64File(const base::FilePath& path, int64_t* value_out);
// Reads a base-10 uint64 value from |path| to |value|, ignoring trailing
// whitespace. Logs an error and returns false on failure.
bool ReadUint64File(const base::FilePath& path, uint64_t* value_out);
// Reads a base-16 uint32 value from |path| to |value|, ignoring trailing
// whitespace. Logs an error and returns false on failure.
bool ReadHexUint32File(const base::FilePath& path, uint32_t* value_out);
// Joins |paths| using |separator|.
std::string JoinPaths(const std::vector<base::FilePath>& paths,
const std::string& separator);
} // namespace util
} // namespace power_manager
#endif // POWER_MANAGER_COMMON_UTIL_H_