Use shared_ptr to set message_set parent 31/21731/3
authorRomain Forlot <romain.forlot@iot.bzh>
Tue, 25 Jun 2019 15:13:22 +0000 (17:13 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Wed, 26 Jun 2019 15:55:05 +0000 (17:55 +0200)
Better to use shared_ptr instead of raw pointer if possible.

Bug-AGL: SPEC-2386

Change-Id: Id853d8ac6cddd1e53edd84e3bf27b0f1f5d92d4b
Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
low-can-binding/binding/application-generated.cpp
low-can-binding/diagnostic/diagnostic-message.cpp
low-can-binding/diagnostic/diagnostic-message.hpp

index f91d415..45b6a8c 100644 (file)
@@ -841,7 +841,7 @@ application_t::application_t()
                std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
                for(auto& dm : diagnostic_messages)
                {
-                       dm->set_parent(cms.get());
+                       dm->set_parent(cms);
                }
        }
                }
index 701248d..6ebb6ab 100644 (file)
@@ -114,7 +114,7 @@ void diagnostic_message_t::set_supported(bool value)
        supported_ = value;
 }
 
-void diagnostic_message_t::set_parent(can_message_set_t* parent)
+void diagnostic_message_t::set_parent(std::shared_ptr<can_message_set_t> parent)
 {
        parent_ = parent;
 }
index c2f31e3..4ae8435 100644 (file)
@@ -39,13 +39,13 @@ enum UNIT {
        INVALID
 };
 
-class can_message_set_t;
+class message_set_t;
 
 /// @brief - A representation of an OBD-II PID Mode 01 (Note : An OBD-II PID mode 01 contains only one information).
 class diagnostic_message_t
 {
        private:
-               can_message_set_t* parent_; /*!< parent_ - Pointer to the CAN message set holding this diagnostic message */
+               std::shared_ptr<can_message_set_t> parent_; /*!< parent_ - Pointer to the CAN message set holding this diagnostic message */
                uint8_t pid_; /*!< pid_ - The 1 byte PID.*/
                std::string generic_name_; /*!< generic_name_ - A human readable name to use for this PID when published.*/
                int min_; /*!< min_ - Minimum value that can take this pid */
@@ -97,7 +97,7 @@ class diagnostic_message_t
                void set_timestamp(uint64_t timestamp);
 
                void set_supported(bool value);
-               void set_parent(can_message_set_t* parent);
+               void set_parent(std::shared_ptr<can_message_set_t> parent);
                const DiagnosticRequest build_diagnostic_request() const;
 
                bool is_obd2_response(const can_message_t& can_message);