blob: 6b841eeb3aba090cdf6caa5ad6758db906bb163d [file] [log] [blame]
// Copyright (c) 2013 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 "shill/file_reader.h"
#include <base/files/file_util.h>
using base::FilePath;
using std::string;
namespace shill {
FileReader::FileReader() {
}
FileReader::~FileReader() {
}
void FileReader::Close() {
file_.reset();
}
bool FileReader::Open(const FilePath &file_path) {
file_.reset(base::OpenFile(file_path, "rb"));
return file_.get() != nullptr;
}
bool FileReader::ReadLine(string *line) {
CHECK(line) << "Invalid argument";
FILE *fp = file_.get();
if (!fp)
return false;
line->clear();
bool line_valid = false;
int ch;
while ((ch = fgetc(fp)) != EOF) {
if (ch == '\n')
return true;
line->push_back(static_cast<char>(ch));
line_valid = true;
}
return line_valid;
}
} // namespace shill