blob: 5bab8c7ca8f15b63fd566e2022dba3958fd175ca [file] [log] [blame]
// Copyright (c) 2011 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 CROS_DISKS_FILE_READER_H_
#define CROS_DISKS_FILE_READER_H_
#include <string>
#include <base/macros.h>
#include <base/files/file_path.h>
#include <base/files/scoped_file.h>
namespace cros_disks {
// A helper class for reading a file line-by-line, which is expected to
// be a substitute for std::getline() as the Google C++ style guide disallows
// the use of stream.
class FileReader {
public:
FileReader() = default;
~FileReader() = default;
// Closes the file.
void Close();
// Opens the file of a given path. Returns true on success.
bool Open(const base::FilePath& file_path);
// Reads a line, terminated by either LF or EOF, from the file into
// a given string, with LF excluded. Returns false if no more line
// can be read from the file.
bool ReadLine(std::string* line);
private:
// The file to read.
base::ScopedFILE file_;
DISALLOW_COPY_AND_ASSIGN(FileReader);
};
} // namespace cros_disks
#endif // CROS_DISKS_FILE_READER_H_