blob: ff5bf7885967a6d4ccc2ebf8c287ce25a00d2271 [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/paint_preview/common/file_utils.h"
#include <memory>
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "components/paint_preview/common/proto/paint_preview.pb.h"
namespace paint_preview {
bool WriteProtoToFile(const base::FilePath& file_path,
const PaintPreviewProto& proto) {
// TODO(crbug.com/40671082): stream to file instead.
std::string proto_str;
if (!proto.SerializeToString(&proto_str))
return false;
return base::WriteFile(file_path, proto_str);
}
std::unique_ptr<PaintPreviewProto> ReadProtoFromFile(
const base::FilePath& file_path) {
// TODO(crbug.com/40671082): Use ZeroCopyInputStream instead.
std::string out;
std::unique_ptr<PaintPreviewProto> proto =
std::make_unique<PaintPreviewProto>();
if (!base::ReadFileToString(file_path, &out) ||
!(proto->ParseFromString(out)))
return nullptr;
return proto;
}
} // namespace paint_preview