diff options
author | Andrey Oleynik <aoleynik@luxoft.com> | 2017-06-20 10:31:16 +0300 |
---|---|---|
committer | Ira Lytvynenko <ILytvynenko@luxoft.com> | 2017-09-08 17:08:28 +0300 |
commit | 2b29c82396c6b24e15f8d54405821f39de379741 (patch) | |
tree | 2daa253bb704bff571527e9f40c993c350a31021 | |
parent | ecdd1f1f831dfbc1bec9af7cc47d1465fccae9d1 (diff) | |
download | sdl_core-2b29c82396c6b24e15f8d54405821f39de379741.tar.gz |
Replaces raw member pointer with utils::SharedPtr
5 files changed, 38 insertions, 13 deletions
diff --git a/src/components/application_manager/include/application_manager/message.h b/src/components/application_manager/include/application_manager/message.h index a79740d77c..6eacf9fe3e 100644 --- a/src/components/application_manager/include/application_manager/message.h +++ b/src/components/application_manager/include/application_manager/message.h @@ -93,6 +93,8 @@ class Message { void set_correlation_id(int32_t id); void set_connection_key(int32_t key); void set_message_type(MessageType type); + // DEPRECATED + void set_binary_data(BinaryData* data); void set_binary_data(const BinaryData* data); void set_json_message(const std::string& json_message); void set_protocol_version(protocol_handler::MajorProtocolVersion version); diff --git a/src/components/application_manager/src/message.cc b/src/components/application_manager/src/message.cc index 1ceedd545c..d67a235a76 100644 --- a/src/components/application_manager/src/message.cc +++ b/src/components/application_manager/src/message.cc @@ -194,6 +194,20 @@ void Message::set_message_type(MessageType type) { type_ = type; } +// DEPRECATED +void Message::set_binary_data(BinaryData* data) { + if (NULL == data) { + NOTREACHED(); + return; + } + + if (binary_data_) { + delete binary_data_; + } + + binary_data_ = new BinaryData(*data); +} + void Message::set_binary_data(const BinaryData* data) { if (NULL == data) { NOTREACHED(); diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/telemetry_monitor.h b/src/components/telemetry_monitor/include/telemetry_monitor/telemetry_monitor.h index 80338804ee..ab33e50df3 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/telemetry_monitor.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/telemetry_monitor.h @@ -35,7 +35,6 @@ #include <string> -#include "utils/shared_ptr.h" #include "utils/message_queue.h" #include "utils/threads/thread.h" #include "utils/threads/thread_delegate.h" @@ -47,6 +46,11 @@ #include "protocol_handler_observer.h" #include "protocol_handler/protocol_handler_impl.h" +namespace utils { +template <typename T> +class SharedPtr; +} + namespace telemetry_monitor { using ::utils::MessageQueue; @@ -88,7 +92,9 @@ class TelemetryMonitor { virtual void Stop(); virtual void Start(); virtual void SendMetric(utils::SharedPtr<MetricWrapper> metric); + // DEPRECATED void set_streamer(Streamer* streamer); + void set_streamer(utils::SharedPtr<Streamer> streamer); const std::string& ip() const; int16_t port() const; @@ -96,7 +102,7 @@ class TelemetryMonitor { std::string server_address_; int16_t port_; threads::Thread* thread_; - Streamer* streamer_; + utils::SharedPtr<Streamer> streamer_; ApplicationManagerObserver app_observer; TransportManagerObserver tm_observer; ProtocolHandlerObserver ph_observer; diff --git a/src/components/telemetry_monitor/src/telemetry_monitor.cc b/src/components/telemetry_monitor/src/telemetry_monitor.cc index 88c484ffd4..a7d9cc6fd3 100644 --- a/src/components/telemetry_monitor/src/telemetry_monitor.cc +++ b/src/components/telemetry_monitor/src/telemetry_monitor.cc @@ -42,6 +42,8 @@ #include "transport_manager/transport_manager_default.h" #include "utils/resource_usage.h" +#include "utils/make_shared.h" +#include "utils/shared_ptr.h" #include "telemetry_monitor/telemetry_observable.h" namespace telemetry_monitor { @@ -53,24 +55,23 @@ TelemetryMonitor::TelemetryMonitor(const std::string& server_address, : server_address_(server_address) , port_(port) , thread_(NULL) - , streamer_(NULL) , app_observer(this) , tm_observer(this) , ph_observer(this) {} void TelemetryMonitor::Start() { - streamer_ = streamer_ ? streamer_ : new Streamer(this); - thread_ = threads::CreateThread("TelemetryMonitor", streamer_); + streamer_ = streamer_ ? streamer_ : utils::MakeShared<Streamer>(this); + thread_ = threads::CreateThread("TelemetryMonitor", streamer_.get()); } -void TelemetryMonitor::set_streamer(Streamer* streamer) { +// DEPRECATED +void TelemetryMonitor::set_streamer(Streamer* streamer) {} + +void TelemetryMonitor::set_streamer(utils::SharedPtr<Streamer> streamer) { LOG4CXX_AUTO_TRACE(logger_); if (thread_ && !thread_->is_running()) { - thread_->set_delegate(streamer); - if (streamer_) { - delete streamer_; - } streamer_ = streamer; + thread_->set_delegate(streamer_.get()); } else { LOG4CXX_ERROR(logger_, "Unable to replace streamer if it is active"); } @@ -86,7 +87,6 @@ int16_t TelemetryMonitor::port() const { TelemetryMonitor::~TelemetryMonitor() { Stop(); - delete streamer_; } void TelemetryMonitor::Init( @@ -117,7 +117,7 @@ void TelemetryMonitor::Stop() { } void TelemetryMonitor::SendMetric(utils::SharedPtr<MetricWrapper> metric) { - if ((NULL != streamer_) && streamer_->is_client_connected_) { + if (streamer_ && streamer_->is_client_connected_) { streamer_->PushMessage(metric); } } diff --git a/src/components/telemetry_monitor/test/telemetry_monitor_test.cc b/src/components/telemetry_monitor/test/telemetry_monitor_test.cc index 090c7ab5b7..5235f0a469 100644 --- a/src/components/telemetry_monitor/test/telemetry_monitor_test.cc +++ b/src/components/telemetry_monitor/test/telemetry_monitor_test.cc @@ -40,6 +40,8 @@ #include "connection_handler/mock_connection_handler.h" #include "transport_manager/mock_transport_manager.h" #include "telemetry_monitor/mock_telemetry_observable.h" +#include "utils/shared_ptr.h" +#include "utils/make_shared.h" using testing::Return; using testing::_; @@ -90,7 +92,8 @@ TEST(TelemetryMonitorTest, MessageProcess) { EXPECT_CALL(am_observeble, SetTelemetryObserver(_)); EXPECT_CALL(transport_manager_mock, SetTelemetryObserver(_)); telemetry_monitor::TelemetryMonitor telemetry_monitor(server_address, port); - StreamerMock* streamer_mock = new StreamerMock(&telemetry_monitor); + utils::SharedPtr<StreamerMock> streamer_mock = + utils::MakeShared<StreamerMock>(&telemetry_monitor); // streamer_mock will be freed by telemetry_monitor on destruction telemetry_monitor.Start(); telemetry_monitor.set_streamer(streamer_mock); |