Massive use of shared_ptr about signal and diag message. WIP
[apps/agl-service-can-low-level.git] / CAN-binder / low-can-binding / binding / configuration.hpp
index dd25a20..2f1f4fc 100644 (file)
 #include <map>
 #include <vector>
 #include <string>
-#include <fcntl.h>
+#include <memory>
 
 #include "../can/can-bus.hpp"
+#include "../can/can-message-set.hpp"
 #include "../can/can-signals.hpp"
-#include "../can/can-message.hpp"
 #include "../diagnostic/diagnostic-manager.hpp"
 
 #include "low-can-hat.hpp"
@@ -48,9 +48,9 @@ class configuration_t
                uint8_t active_message_set_ = 0; ///< Which is the active message set ? Default to 0.
 
                std::vector<can_message_set_t> can_message_set_; ///< Vector holding all message set from JSON signals description file
-               std::vector<std::vector<can_message_definition_t>> can_message_definition_; ///< Vector of vector holding all can message definition from JSON signals description file. This describe a CAN message. First vector map to message set
-               std::vector<std::vector<can_signal_t>> can_signals_; ///< Vector of vector holding all can signasl from JSON signals description file. A CAN signal is a part of a CAN message.  First vector map to message set
-               std::vector<std::vector<diagnostic_message_t>> diagnostic_messages_; ///< Vector of vector holding all diagnostics messages from JSON signals description file. First vector map to message set
+               //std::vector<std::vector<can_message_definition_t>> can_message_definition_; ///< Vector of vector holding all can message definition from JSON signals description file. This describe a CAN message. First vector map to message set
+               //std::vector<std::vector<can_signal_t>> can_signals_; ///< Vector of vector holding all can signasl from JSON signals description file. A CAN signal is a part of a CAN message.  First vector map to message set
+               std::vector<std::vector<std::shared_ptr<diagnostic_message_t> > > diagnostic_messages_; ///< Vector of vector holding all diagnostics messages from JSON signals description file. First vector map to message set
 
                configuration_t(); ///< Private constructor with implementation generated by the AGL generator.
 
@@ -69,14 +69,13 @@ class configuration_t
 
                const std::vector<can_message_set_t>& get_can_message_set();
 
-               std::vector<can_signal_t>& get_can_signals();
+               std::vector<std::shared_ptr<can_signal_t> > get_can_signals();
 
-               std::vector<diagnostic_message_t>& get_diagnostic_messages();
+               std::vector<std::shared_ptr<diagnostic_message_t> > get_diagnostic_messages();
 
                const std::vector<std::string>& get_signals_prefix() const;
 
-               const std::vector<can_message_definition_t>& get_can_message_definition();
-               can_message_definition_t& get_can_message_definition(std::uint8_t message_set_id, std::uint8_t message_id);
+               std::vector<std::shared_ptr<can_message_definition_t> > get_can_message_definition();
 
                uint32_t get_signal_id(diagnostic_message_t& sig) const;
 
@@ -84,7 +83,7 @@ class configuration_t
 
                void set_active_message_set(uint8_t id);
 
-               diagnostic_message_t* get_diagnostic_message(std::string message_name) const;
+               std::shared_ptr<diagnostic_message_t> get_diagnostic_message(std::string message_name) const;
                DiagnosticRequest* get_request_from_diagnostic_message(std::string message_name) const;
 /*
                /// TODO: implement this function as method into can_bus class