8#include <ocpp/common/support_older_cpp_versions.hpp>
9#include <ocpp/v2/comparators.hpp>
12#include <ocpp/v2/enums.hpp>
13#include <ocpp/v2/ocpp_types.hpp>
21 VariableMonitorType type;
22 std::optional<std::string> reference_value;
29 std::vector<VariableMonitoringMeta> monitors;
35 std::unordered_map<int64_t, VariableMonitoringMeta> monitors;
36 std::optional<std::string> source;
39using VariableMap = std::map<Variable, VariableMetaData>;
40using DeviceModelMap = std::map<Component, VariableMap>;
44 [[nodiscard]]
const char* what()
const noexcept override {
45 return this->reason.c_str();
48 this->reason = std::move(msg);
51 this->reason = std::string(msg);
78 const AttributeEnum& attribute_enum) = 0;
86 virtual std::vector<VariableAttribute>
88 const std::optional<AttributeEnum>& attribute_enum = std::nullopt) = 0;
98 const AttributeEnum& attribute_enum,
const std::string& value,
99 const std::string& source) = 0;
105 const VariableMonitorType type) = 0;
120 virtual std::vector<VariableMonitoringMeta>
Definition: device_model_storage_interface.hpp:42
Abstract base class for device model interface. This class provides an interface for accessing and mo...
Definition: device_model_storage_interface.hpp:61
virtual int32_t clear_custom_variable_monitors()=0
Clears all custom monitors (that were added by the CSMS) from the database.
virtual std::optional< VariableAttribute > get_variable_attribute(const Component &component_id, const Variable &variable_id, const AttributeEnum &attribute_enum)=0
Gets a VariableAttribute from the storage if present.
virtual void check_integrity()=0
Check data integrity of the stored data: For "required" variables, assert values exist....
virtual std::optional< VariableMonitoringMeta > set_monitoring_data(const SetMonitoringData &data, const VariableMonitorType type)=0
Inserts or replaces a variable monitor in the database.
virtual std::vector< VariableMonitoringMeta > get_monitoring_data(const std::vector< MonitoringCriterionEnum > &criteria, const Component &component_id, const Variable &variable_id)=0
Returns all the monitors currently in the database based on the provided filtering criteria.
virtual ClearMonitoringStatusEnum clear_variable_monitor(int monitor_id, bool allow_protected)=0
Clears a single monitor based on the ID from the database.
virtual std::vector< VariableAttribute > get_variable_attributes(const Component &component_id, const Variable &variable_id, const std::optional< AttributeEnum > &attribute_enum=std::nullopt)=0
Gets a std::vector<VariableAttribute> from the storage.
virtual bool update_monitoring_reference(const int32_t monitor_id, const std::string &reference_value)=0
Updates the reference value for a monitor. The reference values is used for the delta monitors to det...
virtual 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)=0
Sets the value of an VariableAttribute if present.
virtual DeviceModelMap get_device_model()=0
Gets the device model from the device model interface.
Definition: ocpp_types.hpp:303
Definition: ocpp_types.hpp:852
Definition: ocpp_types.hpp:719
Helper struct that contains all monitors related to a variable that are of a periodic type.
Definition: device_model_storage_interface.hpp:26
Definition: ocpp_types.hpp:667
Definition: ocpp_types.hpp:319