roo_prefs
API Documentation for roo_prefs
Loading...
Searching...
No Matches
preferences_store.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4
5#include "Preferences.h"
6#include "roo_backport.h"
7#include "roo_backport/string_view.h"
8#include "roo_prefs/status.h"
9
10namespace roo_prefs {
11
12/// Low-level wrapper around the underlying preferences storage.
14 public:
15 bool isKey(const char* key);
16
17 ClearResult clear(const char* key);
18
19 template <typename T>
20 WriteResult writeObject(const char* key, const T& val) {
21 return writeObjectInternal(key, &val, sizeof(val));
22 }
23
24 WriteResult writeBool(const char* key, bool val);
25
26 WriteResult writeU8(const char* key, uint8_t val);
27
28 WriteResult writeI8(const char* key, int8_t val);
29
30 WriteResult writeU16(const char* key, uint16_t val);
31
32 WriteResult writeI16(const char* key, int16_t val);
33
34 WriteResult writeU32(const char* key, uint32_t val);
35
36 WriteResult writeI32(const char* key, int32_t val);
37
38 WriteResult writeU64(const char* key, uint64_t val);
39
40 WriteResult writeI64(const char* key, int64_t val);
41
42 WriteResult writeFloat(const char* key, float val);
43
44 WriteResult writeDouble(const char* key, double val);
45
46 WriteResult writeString(const char* key, roo::string_view val);
47
48 WriteResult writeBytes(const char* key, const void* val, size_t len);
49
50 template <typename T>
51 ReadResult readObject(const char* key, T& val) {
52 return readObjectInternal(key, &val, sizeof(val));
53 }
54
55 ReadResult readBool(const char* key, bool& val);
56
57 ReadResult readU8(const char* key, uint8_t& val);
58
59 ReadResult readI8(const char* key, int8_t& val);
60
61 ReadResult readU16(const char* key, uint16_t& val);
62
63 ReadResult readI16(const char* key, int16_t& val);
64
65 ReadResult readU32(const char* key, uint32_t& val);
66
67 ReadResult readI32(const char* key, int32_t& val);
68
69 ReadResult readU64(const char* key, uint64_t& val);
70
71 ReadResult readI64(const char* key, int64_t& val);
72
73 ReadResult readFloat(const char* key, float& val);
74
75 ReadResult readDouble(const char* key, double& val);
76
77 ReadResult readString(const char* key, std::string& val);
78
79 ReadResult readBytes(const char* key, void* val, size_t max_len,
80 size_t* out_len);
81
82 ReadResult readBytesLength(const char* key, size_t* out_len);
83
84 private:
85 friend class Collection;
86
87 bool begin(const char* collection_name, bool read_only);
88 void end();
89
90 WriteResult writeObjectInternal(const char* key, const void* val,
91 size_t size);
92
93 ReadResult readObjectInternal(const char* key, void* val, size_t size);
94
95 Preferences prefs_;
96};
97
98} // namespace roo_prefs
Collection corresponds to a preferences namespace. Use it to group related preferences.
Definition collection.h:14
Low-level wrapper around the underlying preferences storage.
WriteResult writeU8(const char *key, uint8_t val)
ReadResult readBytesLength(const char *key, size_t *out_len)
WriteResult writeBool(const char *key, bool val)
WriteResult writeI8(const char *key, int8_t val)
ReadResult readDouble(const char *key, double &val)
WriteResult writeFloat(const char *key, float val)
ReadResult readI32(const char *key, int32_t &val)
WriteResult writeI32(const char *key, int32_t val)
ReadResult readU8(const char *key, uint8_t &val)
WriteResult writeI16(const char *key, int16_t val)
ReadResult readI8(const char *key, int8_t &val)
WriteResult writeU32(const char *key, uint32_t val)
WriteResult writeString(const char *key, roo::string_view val)
WriteResult writeBytes(const char *key, const void *val, size_t len)
ReadResult readI16(const char *key, int16_t &val)
ReadResult readBool(const char *key, bool &val)
ReadResult readU64(const char *key, uint64_t &val)
WriteResult writeDouble(const char *key, double val)
ReadResult readU32(const char *key, uint32_t &val)
ReadResult readI64(const char *key, int64_t &val)
ClearResult clear(const char *key)
WriteResult writeObject(const char *key, const T &val)
ReadResult readFloat(const char *key, float &val)
ReadResult readObject(const char *key, T &val)
WriteResult writeU64(const char *key, uint64_t val)
ReadResult readBytes(const char *key, void *val, size_t max_len, size_t *out_len)
ReadResult readU16(const char *key, uint16_t &val)
ReadResult readString(const char *key, std::string &val)
WriteResult writeI64(const char *key, int64_t val)
WriteResult writeU16(const char *key, uint16_t val)
Similar to Pref<T>, but does not immediately store written data in persistent storage....
Definition collection.h:6
ReadResult
Result of reading a value from storage.
Definition status.h:8
ClearResult
Result of clearing a value from storage.
Definition status.h:14
WriteResult
Result of writing a value to storage.
Definition status.h:11