LoRa_APRS_iGate/lib/ConfigurationManagement/configuration.h

32 lines
738 B
C
Raw Normal View History

2021-01-01 23:23:27 +01:00
#ifndef CONFIGURATION_H_
#define CONFIGURATION_H_
#include <list>
#include <memory>
2021-01-01 23:23:27 +01:00
#include <Arduino.h>
2021-01-09 13:36:49 +01:00
#ifndef CPPCHECK
2021-01-01 23:23:27 +01:00
#include <ArduinoJson.h>
2021-01-09 13:36:49 +01:00
#endif
2021-01-01 23:23:27 +01:00
2022-03-20 00:37:29 +01:00
#include <logger.h>
2021-01-01 23:23:27 +01:00
class Configuration;
class ConfigurationManagement {
2021-01-01 23:23:27 +01:00
public:
2022-03-20 00:37:29 +01:00
explicit ConfigurationManagement(logging::Logger &logger, String FilePath);
virtual ~ConfigurationManagement();
2021-01-01 23:23:27 +01:00
2022-03-20 00:37:29 +01:00
void readConfiguration(logging::Logger &logger, Configuration &conf);
void writeConfiguration(logging::Logger &logger, Configuration &conf);
2021-01-01 23:23:27 +01:00
private:
2021-05-19 00:44:37 +02:00
virtual void readProjectConfiguration(DynamicJsonDocument &data, Configuration &conf) = 0;
virtual void writeProjectConfiguration(Configuration &conf, DynamicJsonDocument &data) = 0;
2021-01-01 23:23:27 +01:00
const String mFilePath;
2021-01-01 23:23:27 +01:00
};
#endif