File tree 1 file changed +22
-0
lines changed
hardware/esp8266com/esp8266/libraries/EEPROM
1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change 24
24
25
25
#include < stddef.h>
26
26
#include < stdint.h>
27
+ #include < string.h>
27
28
28
29
class EEPROMClass
29
30
{
@@ -35,6 +36,27 @@ class EEPROMClass
35
36
void commit ();
36
37
void end ();
37
38
39
+ template <typename T> T &get (int address, T &t)
40
+ {
41
+ if (address < 0 || address + sizeof (T) > _size)
42
+ return t;
43
+
44
+ uint8_t *ptr = (uint8_t *) &t;
45
+ memcpy (ptr, _data + address, sizeof (T));
46
+ return t;
47
+ }
48
+
49
+ template <typename T> const T &put (int address, const T &t)
50
+ {
51
+ if (address < 0 || address + sizeof (T) > _size)
52
+ return t;
53
+
54
+ const uint8_t *ptr = (const uint8_t *) &t;
55
+ memcpy (_data + address, ptr, sizeof (T));
56
+ _dirty = true ;
57
+ return t;
58
+ }
59
+
38
60
protected:
39
61
uint8_t * _data;
40
62
size_t _size;
You can’t perform that action at this time.
0 commit comments