Change-Id: Iaced471eb6c22a5f64a95d1708b48368724899e0
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
}
API int pkgmgr_client_remove_listen_status(pkgmgr_client *pc) {
- //TODO
- return PKGMGR_R_OK;
+ if (pc == nullptr) {
+ _E("invalid parameter");
+ return PKGMGR_R_EINVAL;
+ }
+
+ auto* con = static_cast<Connector*>(pc);
+ try {
+ const auto& receiver = con->GetSignalReceiver();
+ receiver->RemoveEventHandler();
+ return PKGMGR_R_OK;
+ } catch (...) {
+ _E("Exception occured");
+ return PKGMGR_R_ERROR;
+ }
}
API int pkgmgr_client_broadcast_status(pkgmgr_client *pc, const char *pkg_type,
}
+void SignalReceiver::RemoveEventHandler() {
+ handlers_.clear();
+ global_handlers_.clear();
+ res_handlers_.clear();
+ global_res_handlers_.clear();
+ size_info_handlers_.clear();
+ global_size_info_handlers_.clear();
+ global_pkg_upgrade_handlers_.clear();
+}
+
+
int SignalReceiver::GetRequestId() {
return ++request_id_;
}
void* data);
int AddEventHandler(pkgmgr_pkg_upgrade_handler event_cb, void* data);
void SetStatusType(int status_type);
+ void RemoveEventHandler();
private:
static int GetRequestId();