Skip to content

Commit 422f359

Browse files
authored
Added length and operator[] methods, added some constness, missed dirty clear (#3855)
* Added length and operator[] methods, added some constness, missed _dirty clear * Added forgotten const
1 parent 1b76e9b commit 422f359

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

libraries/EEPROM/EEPROM.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,11 @@ void EEPROMClass::end() {
8383
}
8484
_data = 0;
8585
_size = 0;
86+
_dirty = false;
8687
}
8788

8889

89-
uint8_t EEPROMClass::read(int address) {
90+
uint8_t EEPROMClass::read(int const address) {
9091
if (address < 0 || (size_t)address >= _size)
9192
return 0;
9293
if(!_data)
@@ -95,7 +96,7 @@ uint8_t EEPROMClass::read(int address) {
9596
return _data[address];
9697
}
9798

98-
void EEPROMClass::write(int address, uint8_t value) {
99+
void EEPROMClass::write(int const address, uint8_t const value) {
99100
if (address < 0 || (size_t)address >= _size)
100101
return;
101102
if(!_data)
@@ -136,7 +137,7 @@ uint8_t * EEPROMClass::getDataPtr() {
136137
return &_data[0];
137138
}
138139

139-
uint8_t const * EEPROMClass::getConstDataPtr() {
140+
uint8_t const * EEPROMClass::getConstDataPtr() const {
140141
return &_data[0];
141142
}
142143

libraries/EEPROM/EEPROM.h

+12-7
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ class EEPROMClass {
3232
EEPROMClass(void);
3333

3434
void begin(size_t size);
35-
uint8_t read(int address);
36-
void write(int address, uint8_t val);
35+
uint8_t read(int const address);
36+
void write(int const address, uint8_t const val);
3737
bool commit();
3838
void end();
3939

4040
uint8_t * getDataPtr();
41-
uint8_t const * getConstDataPtr();
41+
uint8_t const * getConstDataPtr() const;
4242

4343
template<typename T>
44-
T &get(int address, T &t) {
44+
T &get(int const address, T &t) {
4545
if (address < 0 || address + sizeof(T) > _size)
4646
return t;
4747

@@ -50,17 +50,22 @@ class EEPROMClass {
5050
}
5151

5252
template<typename T>
53-
const T &put(int address, const T &t) {
53+
const T &put(int const address, const T &t) {
5454
if (address < 0 || address + sizeof(T) > _size)
5555
return t;
5656
if (memcmp(_data + address, (const uint8_t*)&t, sizeof(T)) != 0) {
57-
_dirty = true;
58-
memcpy(_data + address, (const uint8_t*)&t, sizeof(T));
57+
_dirty = true;
58+
memcpy(_data + address, (const uint8_t*)&t, sizeof(T));
5959
}
6060

6161
return t;
6262
}
6363

64+
size_t length() {return _size;}
65+
66+
uint8_t& operator[](int const address) {return getDataPtr()[address];}
67+
uint8_t const & operator[](int const address) const {return getConstDataPtr()[address];}
68+
6469
protected:
6570
uint32_t _sector;
6671
uint8_t* _data;

0 commit comments

Comments
 (0)