Use shared_ptr.
Change-Id: Ia99af79fcaf151ac6a82fc7e944faae6bbbd52a3
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
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();
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);
}
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,
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);
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);
},
¶m);
}
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();
int registration_id_;
int subscribe_id_;
GDBusConnection* connection_;
- std::map<Command, RequestFilter> filters_;
+ std::map<Command, std::shared_ptr<RequestFilter>> filters_;
};
} // namespace dbus
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);
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_;
};
};
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) {