4#ifndef DEVICE_MODEL_STORAGE_SQLITE_HPP
5#define DEVICE_MODEL_STORAGE_SQLITE_HPP
10#include <everest/logging.hpp>
11#include <ocpp/common/database/database_connection.hpp>
12#include <ocpp/v2/device_model_storage_interface.hpp>
20 std::unique_ptr<ocpp::common::DatabaseConnectionInterface> db;
22 int get_component_id(
const Component& component_id);
38 const std::filesystem::path& config_path =
"",
const bool init_db =
false);
42 std::map<Component, std::map<Variable, VariableMetaData>>
get_device_model()
final;
45 const AttributeEnum& attribute_enum)
final;
48 const std::optional<AttributeEnum>& attribute_enum)
final;
51 const AttributeEnum& attribute_enum,
const std::string& value,
52 const std::string& source)
final;
55 const VariableMonitorType type)
final;
59 std::vector<VariableMonitoringMeta>
get_monitoring_data(
const std::vector<MonitoringCriterionEnum>& criteria,
Abstract base class for device model interface. This class provides an interface for accessing and mo...
Definition: device_model_storage_interface.hpp:61
Definition: device_model_storage_sqlite.hpp:17
void check_integrity() final
Check data integrity of the stored data: For "required" variables, assert values exist....
Definition: device_model_storage_sqlite.cpp:458
std::optional< VariableMonitoringMeta > set_monitoring_data(const SetMonitoringData &data, const VariableMonitorType type) final
Inserts or replaces a variable monitor in the database.
Definition: device_model_storage_sqlite.cpp:273
int32_t clear_custom_variable_monitors() final
Clears all custom monitors (that were added by the CSMS) from the database.
Definition: device_model_storage_sqlite.cpp:441
std::vector< VariableAttribute > get_variable_attributes(const Component &component_id, const Variable &variable_id, const std::optional< AttributeEnum > &attribute_enum) final
Gets a std::vector<VariableAttribute> from the storage.
Definition: device_model_storage_sqlite.cpp:185
bool update_monitoring_reference(const int32_t monitor_id, const std::string &reference_value) final
Updates the reference value for a monitor. The reference values is used for the delta monitors to det...
Definition: device_model_storage_sqlite.cpp:251
ClearMonitoringStatusEnum clear_variable_monitor(int monitor_id, bool allow_protected) final
Clears a single monitor based on the ID from the database.
Definition: device_model_storage_sqlite.cpp:397
DeviceModelStorageSqlite(const fs::path &db_path, const std::filesystem::path &migration_files_path="", const std::filesystem::path &config_path="", const bool init_db=false)
Opens SQLite connection at given db_path.
Definition: device_model_storage_sqlite.cpp:21
std::optional< VariableAttribute > get_variable_attribute(const Component &component_id, const Variable &variable_id, const AttributeEnum &attribute_enum) final
Gets a VariableAttribute from the storage if present.
Definition: device_model_storage_sqlite.cpp:173
std::vector< VariableMonitoringMeta > get_monitoring_data(const std::vector< MonitoringCriterionEnum > &criteria, const Component &component_id, const Variable &variable_id) final
Returns all the monitors currently in the database based on the provided filtering criteria.
Definition: device_model_storage_sqlite.cpp:352
bool set_variable_attribute_value(const Component &component_id, const Variable &variable_id, const AttributeEnum &attribute_enum, const std::string &value, const std::string &source) final
Sets the value of an VariableAttribute if present.
Definition: device_model_storage_sqlite.cpp:223
std::map< Component, std::map< Variable, VariableMetaData > > get_device_model() final
Gets the device model from the device model interface.
Definition: device_model_storage_sqlite.cpp:94
Definition: ocpp_types.hpp:303
Definition: ocpp_types.hpp:852
Definition: ocpp_types.hpp:319