CloudConfigRK
Public Member Functions | Protected Attributes
CloudConfigStorageEEPROM< SIZE > Class Template Reference

Storage method to store data in the emulated EEPROM. More...

#include <CloudConfigRK.h>

Inheritance diagram for CloudConfigStorageEEPROM< SIZE >:
CloudConfigStorageData CloudConfigStorage

Public Member Functions

 CloudConfigStorageEEPROM (size_t eepromOffset)
 Constructor for EEPROM storage. More...
 
virtual void setup ()
 Called during setup() to load, validate, and parse the JSON data.
 
virtual bool save ()
 Called to save the data in EEPROM when it is updated.
 
- Public Member Functions inherited from CloudConfigStorageData
 CloudConfigStorageData ()
 Default constructor.
 
 CloudConfigStorageData (CloudConfigDataHeader *header, size_t dataSize)
 Constructor with header. More...
 
CloudConfigStorageDatawithData (CloudConfigDataHeader *header, size_t dataSize)
 Specify the data header and data location. More...
 
virtual CloudConfigDataHeadergetDataHeader ()
 Gets a pointer to the CloudConfigDataHeader structure.
 
void validate ()
 Validate the CloudConfigDataHeader. More...
 
const char *const getJsonData () const
 Gets a pointer to the JSON data for reading (const) More...
 
size_t getMaxJsonDataSize () const
 Returns the maximum size of the JSON data in characters. More...
 
char * getJsonData ()
 Gets a pointer to the JSON data for writing (not const) More...
 
size_t getTotalSize () const
 Gets the total size of the buffer including both the header and the JSON data. More...
 
virtual bool updateData (const char *json)
 This method is called after subclasses update the JSON data. More...
 
- Public Member Functions inherited from CloudConfigStorage
 CloudConfigStorage ()
 Constructor. Base class constructor is empty.
 
bool hasJsonData () const
 Returns true if there is JSON data field is not empty.
 
virtual void parse ()
 Called after the JSON data is updated to parse the data using the JSON parser. More...
 
virtual void loop ()
 Called from loop(). Optional. Only needed if the storage method wants loop processing time.
 
JSONValue getJSONValue ()
 Gets the top level (outer) JSONValue object. More...
 
JSONValue getJSONValueForKey (const char *key)
 Gets the value for a given key in the top-level outer JSON object. More...
 
JSONValue getJSONValueAtIndex (size_t index)
 Gets the value for a given index in the a JSON array in the top-level outer JSON array. More...
 

Protected Attributes

size_t eepromOffset
 Offset into the emulated EEPROM to start storing the data.
 
CloudConfigData< SIZE > dataBuffer
 Copy of the EEPROM data in RAM.
 
- Protected Attributes inherited from CloudConfigStorageData
CloudConfigDataHeaderheader
 Pointer to the header with data after it.
 
size_t dataSize
 Size of the JSON data, not including sizeof(CloudConfigDataHeader)
 
- Protected Attributes inherited from CloudConfigStorage
JSONValue jsonObj
 The JSONValue object for the outermost JSON object (or array) More...
 

Additional Inherited Members

- Static Public Member Functions inherited from CloudConfigStorage
static JSONValue getJSONValueForKey (JSONValue parentObj, const char *key)
 Gets the value for a given key in the a JSON object. More...
 
static JSONValue getJSONValueAtIndex (JSONValue parentObj, size_t index)
 Gets the value for a given index in the a JSON array. More...
 
- Protected Member Functions inherited from CloudConfigStorage
virtual ~CloudConfigStorage ()
 Destructor. Base class destructor is empty. Also, you can't delete one of these.
 
 CloudConfigStorage (const CloudConfigStorage &)=delete
 This class is not copyable.
 
CloudConfigStorageoperator= (const CloudConfigStorage &)=delete
 This class is not copyable.
 

Detailed Description

template<size_t SIZE>
class CloudConfigStorageEEPROM< SIZE >

Storage method to store data in the emulated EEPROM.

This is a good choice for storing data on Gen 2 devices if you have available space in EEPROM.

On Gen 3 devices (Argon, Boron, B Series SoM, Tracker SoM) the file system is usually a better choice. Since the emulated EEPROM is just a file on the file system on Gen 3, there is no performance advantage for using EEPROM over File.

Parameters
SIZEthe templated maximum size of the JSON data.

The getTotalSize() method of the parent class determines how many bytes of EEPROM are used; it's the size of the CloudConfigDataHeader plus SIZE.

Constructor & Destructor Documentation

◆ CloudConfigStorageEEPROM()

template<size_t SIZE>
CloudConfigStorageEEPROM< SIZE >::CloudConfigStorageEEPROM ( size_t  eepromOffset)
inline

Constructor for EEPROM storage.

Parameters
eepromOffsetStarting offset in EEPROM to store the data.

The getTotalSize() method of the parent class determines how many bytes of EEPROM are used; it's the size of the CloudConfigDataHeader plus SIZE.


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