Make diagnostic manager initialization processus.
[apps/low-level-can-service.git] / src / diagnostic / active-diagnostic-request.cpp
index 3e6ab14..505d816 100644 (file)
@@ -24,18 +24,21 @@ bool active_diagnostic_request_t::operator==(const active_diagnostic_request_t&
 
 active_diagnostic_request_t& active_diagnostic_request_t::operator=(const active_diagnostic_request_t& adr)
 {
-       bus_ = adr.bus_;
-       id_ = adr.id_;
-       handle_ = adr.handle_;
-       name_ = adr.name_;
-       decoder_ = adr.decoder_;
-       callback_ = adr.callback_;
-       recurring_ = adr.recurring_; 
-       wait_for_multiple_responses_ = adr.wait_for_multiple_responses_;
-       in_flight_ = adr.in_flight_;
-       frequency_clock_ = adr.frequency_clock_;
-       timeout_clock_ = adr.timeout_clock_;
-
+       if (this != &adr)
+       {
+               bus_ = adr.bus_;
+               id_ = adr.id_;
+               handle_ = adr.handle_;
+               name_ = adr.name_;
+               decoder_ = adr.decoder_;
+               callback_ = adr.callback_;
+               recurring_ = adr.recurring_; 
+               wait_for_multiple_responses_ = adr.wait_for_multiple_responses_;
+               in_flight_ = adr.in_flight_;
+               frequency_clock_ = adr.frequency_clock_;
+               timeout_clock_ = adr.timeout_clock_;
+       }
+       
        return *this;
 }
 
@@ -45,7 +48,7 @@ active_diagnostic_request_t::active_diagnostic_request_t()
          in_flight_{false}, frequency_clock_{frequency_clock_t()}, timeout_clock_{frequency_clock_t()}
 {}
 
-active_diagnostic_request_t::active_diagnostic_request_t(can_bus_dev_t* bus, DiagnosticRequest* request,
+active_diagnostic_request_t::active_diagnostic_request_t(std::shared_ptr<can_bus_dev_t> bus, DiagnosticRequest* request,
                const std::string& name, bool wait_for_multiple_responses,
                const DiagnosticResponseDecoder decoder,
                const DiagnosticResponseCallback callback, float frequencyHz)
@@ -54,7 +57,7 @@ active_diagnostic_request_t::active_diagnostic_request_t(can_bus_dev_t* bus, Dia
          in_flight_{false}, frequency_clock_{frequency_clock_t(frequencyHz)}, timeout_clock_{frequency_clock_t(10)}
 {}
 
-can_bus_dev_t* active_diagnostic_request_t::get_can_bus_dev()
+std::shared_ptr<can_bus_dev_t> active_diagnostic_request_t::get_can_bus_dev()
 {
        return bus_;
 }