Fix RequestBroker::RegisterRequestFilter() 64/237164/2
authorSangyoon Jang <jeremy.jang@samsung.com>
Thu, 25 Jun 2020 06:15:49 +0000 (15:15 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Fri, 26 Jun 2020 02:32:13 +0000 (11:32 +0900)
Use shared_ptr.

Change-Id: Ia99af79fcaf151ac6a82fc7e944faae6bbbd52a3
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/main/main.cc
src/theme/dbus/request_broker.cc
src/theme/dbus/request_broker.h
src/theme/loader/theme_info_loader.cc
src/theme/loader/theme_info_loader.h
test/unit_tests/test_request_broker.cc

index a4f6530..934e32e 100644 (file)
@@ -62,18 +62,18 @@ bool ThemeManager::Init() {
   std::shared_ptr<ttm::dbus::IRequestHandler> srh =
       std::make_shared<ttm::provider::SelectionRequestHandler>(tip);
 
+  using ttm::dbus::Command;
+  using ttm::dbus::RequestFilter;
   r.RegisterRequestFilter(
-      ttm::dbus::RequestFilter(ttm::dbus::Command::SET_ID, crh));
+      std::make_shared<RequestFilter>(Command::SET_ID, perh));
   r.RegisterRequestFilter(
-      ttm::dbus::RequestFilter(ttm::dbus::Command::ADD, perh));
+      std::make_shared<RequestFilter>(Command::REMOVE, perh));
   r.RegisterRequestFilter(
-      ttm::dbus::RequestFilter(ttm::dbus::Command::REMOVE, perh));
+      std::make_shared<RequestFilter>(Command::UPDATE, perh));
   r.RegisterRequestFilter(
-      ttm::dbus::RequestFilter(ttm::dbus::Command::UPDATE, perh));
+      std::make_shared<RequestFilter>(Command::GET, srh));
   r.RegisterRequestFilter(
-      ttm::dbus::RequestFilter(ttm::dbus::Command::GET, srh));
-  r.RegisterRequestFilter(
-      ttm::dbus::RequestFilter(ttm::dbus::Command::GET_IDS, srh));
+      std::make_shared<RequestFilter>(Command::GET_IDS, srh));
 
   r.Listen();
 
index 7254668..44b2bdb 100644 (file)
@@ -59,7 +59,7 @@ void RequestBroker::OnReceiveDbusMethod(GDBusConnection* connection,
     return;
   }
 
-  tizen_base::Bundle result = it->second.GetHandler()->OnRequest(cmd, b);
+  tizen_base::Bundle result = it->second->GetHandler()->OnRequest(cmd, b);
   reply_body = g_variant_new("(s)", result.ToRaw().first.get());
   g_dbus_method_invocation_return_value(invocation, reply_body);
 }
@@ -89,9 +89,9 @@ GDBusConnection* RequestBroker::GetConnection() {
   return connection_;
 }
 
-int RequestBroker::RegisterRequestFilter(RequestFilter filter) {
-  filters_.emplace(filter.GetCmd(), filter);
-  return 0;
+void RequestBroker::RegisterRequestFilter(
+    std::shared_ptr<RequestFilter> filter) {
+  filters_.emplace(filter->GetCmd(), std::move(filter));
 }
 
 bool RequestBroker::EmitSignal(std::string signal_name,
@@ -194,7 +194,7 @@ bool RequestBroker::Subscribe() {
         if (it == broker->filters_.end())
           return;
 
-        tizen_base::Bundle result = it->second.GetHandler()->OnRequest(cmd, b);
+        tizen_base::Bundle result = it->second->GetHandler()->OnRequest(cmd, b);
       },
       this, nullptr);
 
@@ -278,7 +278,7 @@ void RequestBroker::SendDataAsync(Command cmd, tizen_base::Bundle& data) {
         auto it = broker->filters_.find(param->first);
         if (it == broker->filters_.end())
           return;
-        it->second.GetHandler()->OnRequest(Command::RESULT, b);
+        it->second->GetHandler()->OnRequest(Command::RESULT, b);
       },
       &param);
 }
index 1380f27..260570e 100644 (file)
@@ -33,7 +33,7 @@ class RequestBroker {
   static RequestBroker& GetInst();
   GDBusConnection* GetConnection();
 
-  int RegisterRequestFilter(RequestFilter filter);
+  void RegisterRequestFilter(std::shared_ptr<RequestFilter> filter);
   bool EmitSignal(std::string signal_name,
       Command cmd, tizen_base::Bundle data);
   bool Listen();
@@ -56,7 +56,7 @@ class RequestBroker {
   int registration_id_;
   int subscribe_id_;
   GDBusConnection* connection_;
-  std::map<Command, RequestFilter> filters_;
+  std::map<Command, std::shared_ptr<RequestFilter>> filters_;
 };
 
 }  // namespace dbus
index dc1bc3b..672e0ec 100644 (file)
@@ -53,9 +53,9 @@ tizen_base::Bundle ThemeInfoLoader::OnRequest(dbus::Command cmd,
 std::string ThemeInfoLoader::AddEvent(std::shared_ptr<IThemeEvent> ev) {
   if (changed_filter_ == nullptr) {
     changed_filter_ =
-        std::make_unique<dbus::RequestFilter>(dbus::Command::CHANGED,
+        std::make_shared<dbus::RequestFilter>(dbus::Command::CHANGED,
             shared_from_this(), false);
-      dbus::RequestBroker::GetInst().RegisterRequestFilter(*changed_filter_);
+    dbus::RequestBroker::GetInst().RegisterRequestFilter(changed_filter_);
   }
 
   std::size_t hash = std::hash<std::shared_ptr<IThemeEvent>>{}(ev);
index 92a3d02..0ace152 100644 (file)
@@ -48,7 +48,7 @@ class ThemeInfoLoader : public dbus::IRequestHandler,
     const tizen_base::Bundle& args) override;
 
   std::shared_ptr<ThemeInfo> cache_;
-  std::unique_ptr<dbus::RequestFilter> changed_filter_;
+  std::shared_ptr<dbus::RequestFilter> changed_filter_;
   std::map<std::string, std::shared_ptr<IThemeEvent>> listeners_;
 };
 
index a7d4f07..0919b61 100644 (file)
@@ -94,11 +94,11 @@ class RequestBrokerTest : public TestFixture {
 };
 
 TEST_F(RequestBrokerTest, RegisterRequestFilter) {
-  ttm::dbus::RequestFilter filter(ttm::dbus::Command::ADD,
-      std::make_shared<TestRequestHandler>());
-  EXPECT_FALSE(filter.IsOneway());
-  int res = broker_.RegisterRequestFilter(std::move(filter));
-  EXPECT_EQ(res, 0);
+  std::shared_ptr<ttm::dbus::RequestFilter> filter =
+      std::make_shared<ttm::dbus::RequestFilter>(ttm::dbus::Command::ADD,
+          std::make_shared<TestRequestHandler>());
+  EXPECT_FALSE(filter->IsOneway());
+  broker_.RegisterRequestFilter(filter);
 }
 
 TEST_F(RequestBrokerTest, EmitSignal) {