Format
[apps/agl-service-can-low-level.git] / low-can-binding / can / can-message-set.hpp
index 94e2d8d..bf53c8c 100644 (file)
 
 #include <cstdint>
 #include <string>
+#include <vector>
+#include <memory>
 
-/// @brief A parent wrapper for a particular set of CAN messages and associated
-/// CAN buses(e.g. a vehicle or program).
+class can_signal_t;
+class can_message_definition_t;
+class diagnostic_message_t;
+
+/// @brief A parent wrapper for a particular set of CAN messages and diagnostic messages
+/// (e.g. a vehicle or program).
 class can_message_set_t
 {
 private:
        uint8_t index_; /// < A numerical ID for the message set, ideally the index in an array for fast lookup
        const std::string name_; /// < The name of the message set.
-       uint8_t can_bus_count_; /// < The number of CAN buses defined for this message set.
-       uint16_t can_message_count_; /// < The number of CAN messages (across all buses) defined for this message set.
-       uint16_t can_signal_count_; /// < The number of CAN signals (across all messages) defined for this message set.
-       uint16_t can_command_count_; /// < The number of CanCommmands defined for this message set.
-       uint16_t obd2_signal_count_; /// < The number of obd2 signals defined for this message set.
+       std::vector<std::shared_ptr<can_message_definition_t> > can_messages_definition_; ///< Vector holding all message definition handled by this message set.
+       std::vector<std::shared_ptr<diagnostic_message_t> > diagnostic_messages_; ///< Vector holding all diagnostics messages from JSON signals description file. First vector map to message set
 
 public:
        can_message_set_t(
                        uint8_t index,
                        const std::string& name,
-                       uint8_t can_bus_count,
-                       short unsigned int can_message_count,
-                       short unsigned int can_signal_count,
-                       short unsigned int can_command_count,
-                       short unsigned int obd2_signal_count);
+                       const std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition,
+                       const std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages);
 
+       std::vector<std::shared_ptr<can_message_definition_t> >& get_can_message_definition();
+       std::vector<std::shared_ptr<can_signal_t> > get_all_can_signals() const;
+       std::vector<std::shared_ptr<diagnostic_message_t> >& get_diagnostic_messages();
 };