blob: e8730f89165daa7fdd42f357d866bffd14f636da [file] [log] [blame]
// Copyright 2020 The Fuchsia 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 SRC_DEVELOPER_FORENSICS_UTILS_PREVIOUS_BOOT_FILE_H_
#define SRC_DEVELOPER_FORENSICS_UTILS_PREVIOUS_BOOT_FILE_H_
#include <string>
namespace forensics {
// Manages moving a file from a previous boot from /cache to /tmp the first time a component is
// instantiated so it is accessible across component restarts, but not reboots.
class PreviousBootFile {
public:
// Move /cache/<file> to /tmp/<file>.
static PreviousBootFile FromCache(bool is_first_instance, const std::string& file);
// The path where data from this boot should be stored.
const std::string& CurrentBootPath() const { return current_boot_path_; }
// The path where data from the previous boot is stored. A null value indicates that the data
// wasn't successfully moved.
const std::string& PreviousBootPath() const { return previous_boot_path_; }
private:
PreviousBootFile(bool is_first_instance, const std::string& to, const std::string& from);
std::string current_boot_path_;
std::string previous_boot_path_;
};
} // namespace forensics
#endif // SRC_DEVELOPER_FORENSICS_UTILS_PREVIOUS_BOOT_FILE_H_