78class KeyValueElement {
 
   80  explicit KeyValueElement(
const char* keyName);
 
   82  bool isKeyEqual(
const char* keyToCheck);
 
   83  KeyValueElement* getNext();
 
   85  void setNext(KeyValueElement* toBeSet);
 
   86  void add(KeyValueElement* toBeAdded);
 
   88  size_t serialize(uint8_t* destination, 
size_t maxSize);
 
   90  bool setString(
const char* value);
 
   91  bool getString(
char* value, 
size_t maxSize);
 
   94  bool setBlob(
const char* value, 
size_t blobSize);
 
   95  bool getBlob(
char* value, 
size_t blobSize);
 
   98  bool getInt8(int8_t* result);
 
   99  bool getUInt8(uint8_t* result);
 
  100  bool getInt32(int32_t* result);
 
  101  bool getUInt32(uint32_t* result);
 
  103  bool setInt8(
const int8_t value);
 
  104  bool setUInt8(
const uint8_t value);
 
  105  bool setInt32(
const int32_t value);
 
  106  bool setUInt32(
const uint32_t value);
 
  109  KeyValueElement* next = 
nullptr;
 
  110  char key[SUPLA_STORAGE_KEY_SIZE] = {};
 
  111  enum DataType dataType = DATA_TYPE_NOT_SET;
 
  112  unsigned int size = 0;  
 
  114    uint8_t* uint8ptr = 
nullptr;