Set parent from configuration_generated objects.
authorRomain Forlot <romain.forlot@iot.bzh>
Fri, 19 May 2017 12:07:38 +0000 (14:07 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Fri, 19 May 2017 14:19:08 +0000 (16:19 +0200)
Change-Id: I8f07084c6364347ebad3e029b89aeef93129cce3
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
CAN-binder/low-can-binding/binding/configuration-generated.cpp
CAN-binder/low-can-binding/can/can-message-definition.cpp
CAN-binder/low-can-binding/can/can-message-set.cpp

index ad31c45..bce469e 100644 (file)
@@ -456,7 +456,27 @@ configuration_t::configuration_t()
                        } // end diagnostic_messages_ vector
                })} // end can_message_set entry
        } // end can_message_set vector
-{}
+{
+       for(auto& cms: can_message_set_)
+       {
+               std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition = cms->get_can_message_definition();
+               for(auto& cmd : can_messages_definition)
+               {
+                       cmd->set_parent(cms.get());
+                       std::vector<std::shared_ptr<can_signal_t> >& can_signals = cmd->get_can_signals();
+                       for(auto& sig: can_signals)
+                       {
+                               sig->set_parent(cmd.get());
+                       }
+               }
+
+               std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
+               for(auto& dm : diagnostic_messages)
+               {
+                       dm->set_parent(cms.get());
+               }
+       }
+}
 
 const std::string configuration_t::get_diagnostic_bus() const
 {
index 256af88..a9ee20c 100644 (file)
@@ -64,12 +64,7 @@ can_message_definition_t::can_message_definition_t(
        force_send_changed_{force_send_changed},
        last_value_{CAN_MESSAGE_SIZE},
        can_signals_{std::move(can_signals)}
-{
-       for(auto& sig: can_signals_)
-       {
-               sig->set_parent(this);
-       }
-}
+{}
 
 const std::string can_message_definition_t::get_bus_name() const
 {
index 1e352d9..dcb859d 100644 (file)
@@ -29,17 +29,7 @@ can_message_set_t::can_message_set_t(
        , name_{name}
        , can_messages_definition_{std::move(can_messages_definition)}
        , diagnostic_messages_{std::move(diagnostic_messages)}
-{
-       for(auto& cmd : can_messages_definition_)
-       {
-               cmd->set_parent(this);
-       }
-
-       for(auto& dm : diagnostic_messages_)
-       {
-               dm->set_parent(this);
-       }
-}
+{}
 
 /// @brief Return vector holding all message definition handled by this message set.
 std::vector<std::shared_ptr<can_message_definition_t> >& can_message_set_t::get_can_message_definition()