mirror of
https://github.com/thelsing/knx.git
synced 2025-01-16 00:08:16 +01:00
Split Restore from SaveRestore.
This commit is contained in:
parent
94b91278bd
commit
2770f5eaa9
@ -15,6 +15,8 @@ bool Memory::isMemoryModified()
|
||||
return _modified;
|
||||
}
|
||||
|
||||
// TODO implement flash layout: manufacturerID, HarwareType, Version, addr[0], size[0], addr[1], size[1], ...
|
||||
// reconstruct free flash list and used list on read
|
||||
void Memory::readMemory()
|
||||
{
|
||||
_data = _platform.getEepromBuffer(512);
|
||||
@ -41,7 +43,9 @@ void Memory::writeMemory()
|
||||
int size = _saveCount;
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
buffer = _saveRestores[i]->save(buffer);
|
||||
SaveRestore* saveRestore = dynamic_cast<SaveRestore*>(_saveRestores[i]);
|
||||
if(saveRestore)
|
||||
buffer = saveRestore->save(buffer);
|
||||
}
|
||||
_platform.commitToEeprom();
|
||||
_modified = false;
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
private:
|
||||
Platform& _platform;
|
||||
bool _modified = false;
|
||||
SaveRestore* _saveRestores[MAXSAVE] = {0};
|
||||
Restore* _saveRestores[MAXSAVE] = {0};
|
||||
int _saveCount = 0;
|
||||
uint8_t* _data = 0;
|
||||
};
|
||||
|
21
src/knx/restore.h
Normal file
21
src/knx/restore.h
Normal file
@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* Interface for classes that can restore data from a buffer.
|
||||
*/
|
||||
class Restore
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* This method is called when the object should restore its state from the buffer.
|
||||
*
|
||||
* @param buffer The buffer the object should restore its state from.
|
||||
*
|
||||
* @return The buffer plus the size of the object state. The next object will use this value as
|
||||
* the start of its buffer.
|
||||
*/
|
||||
virtual uint8_t* restore(uint8_t* buffer) = 0;
|
||||
};
|
@ -1,10 +1,11 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
#include "restore.h"
|
||||
|
||||
/**
|
||||
* Interface for classes that can save and restore data from a buffer.
|
||||
*/
|
||||
class SaveRestore
|
||||
class SaveRestore : public Restore
|
||||
{
|
||||
public:
|
||||
/**
|
||||
@ -16,13 +17,4 @@ class SaveRestore
|
||||
* the start of its buffer.
|
||||
*/
|
||||
virtual uint8_t* save(uint8_t* buffer) = 0;
|
||||
/**
|
||||
* This method is called when the object should restore its state from the buffer.
|
||||
*
|
||||
* @param buffer The buffer the object should restore its state from.
|
||||
*
|
||||
* @return The buffer plus the size of the object state. The next object will use this value as
|
||||
* the start of its buffer.
|
||||
*/
|
||||
virtual uint8_t* restore(uint8_t* buffer) = 0;
|
||||
};
|
Loading…
Reference in New Issue
Block a user