blob: eedba4bd2a1b58cfdd66a1756851522172d3012e [file] [log] [blame]
Alex Deymoaea4c1c2015-08-19 20:24:43 -07001//
2// Copyright (C) 2011 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
Darin Petkov30030592010-07-27 13:53:20 -070016
Gilad Arnoldcf175a02014-07-10 16:48:47 -070017#ifndef UPDATE_ENGINE_PREFS_INTERFACE_H_
18#define UPDATE_ENGINE_PREFS_INTERFACE_H_
Darin Petkov30030592010-07-27 13:53:20 -070019
Ben Chan9abb7632014-08-07 00:10:53 -070020#include <stdint.h>
21
Darin Petkov30030592010-07-27 13:53:20 -070022#include <string>
23
24namespace chromeos_update_engine {
25
26// The prefs interface allows access to a persistent preferences
27// store. The two reasons for providing this as an interface are
28// testing as well as easier switching to a new implementation in the
29// future, if necessary.
30
31class PrefsInterface {
32 public:
Alex Deymo610277e2014-11-11 21:18:11 -080033 virtual ~PrefsInterface() {}
34
Darin Petkov30030592010-07-27 13:53:20 -070035 // Gets a string |value| associated with |key|. Returns true on
36 // success, false on failure (including when the |key| is not
37 // present in the store).
38 virtual bool GetString(const std::string& key, std::string* value) = 0;
39
40 // Associates |key| with a string |value|. Returns true on success,
41 // false otherwise.
42 virtual bool SetString(const std::string& key, const std::string& value) = 0;
43
Ben Chan9abb7632014-08-07 00:10:53 -070044 // Gets an int64_t |value| associated with |key|. Returns true on
Darin Petkov30030592010-07-27 13:53:20 -070045 // success, false on failure (including when the |key| is not
46 // present in the store).
47 virtual bool GetInt64(const std::string& key, int64_t* value) = 0;
48
Ben Chan9abb7632014-08-07 00:10:53 -070049 // Associates |key| with an int64_t |value|. Returns true on success,
Darin Petkov30030592010-07-27 13:53:20 -070050 // false otherwise.
51 virtual bool SetInt64(const std::string& key, const int64_t value) = 0;
Darin Petkov1cbd78f2010-07-29 12:38:34 -070052
Alex Deymoefb7c4c2013-07-09 14:34:00 -070053 // Gets a boolean |value| associated with |key|. Returns true on
54 // success, false on failure (including when the |key| is not
55 // present in the store).
56 virtual bool GetBoolean(const std::string& key, bool* value) = 0;
57
58 // Associates |key| with a boolean |value|. Returns true on success,
59 // false otherwise.
60 virtual bool SetBoolean(const std::string& key, const bool value) = 0;
61
Jay Srinivasan480ddfa2012-06-01 19:15:26 -070062 // Returns true if the setting exists (i.e. a file with the given key
63 // exists in the prefs directory)
64 virtual bool Exists(const std::string& key) = 0;
65
66 // Returns true if successfully deleted the file corresponding to
67 // this key. Calling with non-existent keys does nothing.
68 virtual bool Delete(const std::string& key) = 0;
Darin Petkov30030592010-07-27 13:53:20 -070069};
70
71} // namespace chromeos_update_engine
72
Gilad Arnoldcf175a02014-07-10 16:48:47 -070073#endif // UPDATE_ENGINE_PREFS_INTERFACE_H_