StorageHelperRK
Public Member Functions | Protected Attributes
StorageHelperRK::PersistentDataEEPROM Class Reference

Class for persistent data stored in emulated EEPROM. More...

#include <StorageHelperRK.h>

Inheritance diagram for StorageHelperRK::PersistentDataEEPROM:
StorageHelperRK::PersistentDataBase StorageHelperRK::CustomRecursiveMutex

Public Member Functions

 PersistentDataEEPROM (int eepromOffset, SavedDataHeader *savedDataHeader, size_t savedDataSize, uint32_t savedDataMagic, uint16_t savedDataVersion)
 Class for persistent data saved in emulated EEPROM. More...
 
virtual bool load ()
 Load the persistent data file. You normally do not need to call this; it will be loaded automatically. More...
 
virtual void save ()
 Save the persistent data file. You normally do not need to call this; it will be saved automatically. More...
 
- Public Member Functions inherited from StorageHelperRK::PersistentDataBase
 PersistentDataBase (SavedDataHeader *savedDataHeader, size_t savedDataSize, uint32_t savedDataMagic, uint16_t savedDataVersion)
 Base class for persistent data saved in file or RAM. More...
 
PersistentDataBasewithSaveDelayMs (uint32_t value)
 Sets the wait to save delay. Default is 1000 milliseconds. More...
 
virtual void setup ()
 Initialize this object for use in StorageHelperRK. More...
 
virtual void flush (bool force)
 Write the settings to disk if changed and the wait to save time has expired. More...
 
virtual void saveOrDefer ()
 Either saves data or immediately, or defers until later, based on saveDelayMs. More...
 
template<class T >
getValue (size_t offset) const
 Templated class for getting integral values (uint32_t, float, double, etc.) More...
 
template<class T >
void setValue (size_t offset, T value)
 Templated class for setting integral values (uint32_t, float, double, etc.) More...
 
bool getValueString (size_t offset, size_t size, String &value) const
 Get the value of a string. More...
 
bool setValueString (size_t offset, size_t size, const char *value)
 Set the value of a string. More...
 
uint32_t getHash () const
 Get the hash valid for data integrity checking.
 
- Public Member Functions inherited from StorageHelperRK::CustomRecursiveMutex
 CustomRecursiveMutex (os_mutex_recursive_t handle)
 Construct a CustomRecursiveMutex wrapper object from an existing recursive mutex. More...
 
 CustomRecursiveMutex ()
 Default constructor with no mutex - one will be created on first lock.
 
 ~CustomRecursiveMutex ()
 Destroys the underlying mutex object.
 
void dispose ()
 Destroys the mutex object.
 
void lock () const
 Locks the mutex. Creates a new recursive mutex object if it does not exist yet. More...
 
bool trylock () const
 Attempts to lock the mutex. Creates a new recursive mutex object if it does not exist yet. More...
 
bool try_lock () const
 Attempts to lock the mutex. Creates a new recursive mutex object if it does not exist yet. More...
 
void unlock () const
 Unlocks the mutex. More...
 

Protected Attributes

int eepromOffset
 Offset into EEPROM to save the data.
 
- Protected Attributes inherited from StorageHelperRK::PersistentDataBase
SavedDataHeadersavedDataHeader = 0
 Pointer to the saved data header, which is followed by the data.
 
uint32_t savedDataSize = 0
 Size of the saved data (header + actual data)
 
uint32_t savedDataMagic
 Magic bytes for the saved data.
 
uint16_t savedDataVersion
 Version number for the saved data.
 
uint32_t lastUpdate = 0
 Last time the file was updated. 0 = file has not changed since writing to disk.
 
uint32_t saveDelayMs = 1000
 How long to wait to save before writing file to disk. Set to 0 to write immediately.
 

Additional Inherited Members

- Static Public Attributes inherited from StorageHelperRK::PersistentDataBase
static const uint32_t HASH_SEED = 0x851c2a3f
 Murmur32 hash seed value (randomly generated)
 
- Protected Member Functions inherited from StorageHelperRK::PersistentDataBase
 PersistentDataBase (const PersistentDataBase &)=delete
 
PersistentDataBaseoperator= (const PersistentDataBase &)=delete
 
virtual bool validate (size_t dataSize)
 Used to validate the saved data structure. Used internally by load(). More...
 
virtual void initialize ()
 Used to allow subclasses to initialize the saved data structure. Called internally by load(). More...
 

Detailed Description

Class for persistent data stored in emulated EEPROM.

This is only recommended for Gen 2 devices. On Gen 3 devices, EEPROM is implemented as a file in the file system anyway, so it's more efficient to just store your persistent data in its own file.

Constructor & Destructor Documentation

◆ PersistentDataEEPROM()

StorageHelperRK::PersistentDataEEPROM::PersistentDataEEPROM ( int  eepromOffset,
SavedDataHeader savedDataHeader,
size_t  savedDataSize,
uint32_t  savedDataMagic,
uint16_t  savedDataVersion 
)
inline

Class for persistent data saved in emulated EEPROM.

Parameters
eepromOffsetOffset into the EEPROM to store the data.
savedDataHeaderPointer to the saved data header
savedDataSizesize of the whole structure, including the user data after it
savedDataMagicMagic bytes to use for this data
savedDataVersionVersion to use for this data

Member Function Documentation

◆ load()

bool StorageHelperRK::PersistentDataEEPROM::load ( )
virtual

Load the persistent data file. You normally do not need to call this; it will be loaded automatically.

Returns
true
false

Reimplemented from StorageHelperRK::PersistentDataBase.

◆ save()

void StorageHelperRK::PersistentDataEEPROM::save ( )
virtual

Save the persistent data file. You normally do not need to call this; it will be saved automatically.

Reimplemented from StorageHelperRK::PersistentDataBase.


The documentation for this class was generated from the following files: