| // Copyright 2020 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 DLCSERVICE_PREFS_H_ |
| #define DLCSERVICE_PREFS_H_ |
| |
| #include <string> |
| |
| #include <base/files/file_path.h> |
| |
| #include "dlcservice/boot/boot_slot.h" |
| #include "dlcservice/dlc.h" |
| |
| namespace dlcservice { |
| |
| extern const char kDlcPrefVerified[]; |
| extern const char kDlcRootMount[]; |
| |
| // |Prefs| class can be used to persist key value pairs to disk. |
| class Prefs { |
| public: |
| // Initializes prefs with root as |prefs_root|. |
| explicit Prefs(const base::FilePath& prefs_root); |
| |
| // Initializes prefs starting path using |SystemState::dlc_prefs_dir()| with |
| // |DlcBase|'s DLC ID and |BootSlot::Slot|. |
| Prefs(const DlcBase& dlc, BootSlot::Slot slot); |
| |
| // Sets the given |value| for |key|, creating the |key| if it did not exist. |
| bool SetKey(const std::string& key, const std::string& value); |
| |
| // Gets the given |key|'s value into |value|. Returns false if |key| did not |
| // exist. |
| bool GetKey(const std::string& key, std::string* value); |
| |
| // Creates the given |key| with empty value. |
| bool Create(const std::string& key); |
| |
| // Returns true if the |key| exists. |
| bool Exists(const std::string& key); |
| |
| // Removes the |key|. |
| bool Delete(const std::string& key); |
| |
| private: |
| base::FilePath prefs_root_; |
| |
| Prefs(const Prefs&) = delete; |
| Prefs& operator=(const Prefs&) = delete; |
| }; |
| |
| } // namespace dlcservice |
| |
| #endif // DLCSERVICE_PREFS_H_ |