// Copyright 2016 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 "chromiumos-wide-profiling/file_utils.h"

#include <sys/stat.h>

#include "base/logging.h"
#include "chromiumos-wide-profiling/file_reader.h"

namespace quipper {

bool FileToBuffer(const string& filename, std::vector<char>* contents) {
  FileReader reader(filename);
  if (!reader.IsOpen())
    return false;
  size_t file_size = reader.size();
  contents->resize(file_size);
  // Do not read anything if the file exists but is empty.
  if (file_size > 0 &&
      !reader.ReadData(file_size, contents->data())) {
    LOG(ERROR) << "Failed to read " << file_size << " bytes from file "
               << filename << ", only read " << reader.Tell();
    return false;
  }
  return true;
}

bool FileExists(const string& filename) {
  struct stat st;
  return stat(filename.c_str(), &st) == 0;
}

}  // namespace quipper
