From a223931c9273d4f9146f37aefd9917ecdccffd6c Mon Sep 17 00:00:00 2001 From: Michal Michalski Date: Mon, 7 Jan 2019 11:24:20 +0100 Subject: [PATCH] [application] Change static methods to free functions. ApplicationUtils class had only static methods and no state. All those methods could as well be standalone functions, and this is the preferred option due to simpler code. [Verification] TCT pass: tct-appcontrol-tizen-tests tct-application-tizen-tests Change-Id: Ib1004a7bd8e01615d6802ef3152d6e5df8e0edea --- src/application/application_manager.cc | 30 +++++------ src/application/application_utils.cc | 52 ++++++++++--------- src/application/application_utils.h | 45 +++++++--------- .../requested_application_control.cc | 6 +-- 4 files changed, 63 insertions(+), 70 deletions(-) diff --git a/src/application/application_manager.cc b/src/application/application_manager.cc index 1815a80d..d418bce4 100644 --- a/src/application/application_manager.cc +++ b/src/application/application_manager.cc @@ -149,7 +149,7 @@ void ApplicationManager::GetCurrentApplication(const std::string& app_id, picojs picojson::value app_info = picojson::value(picojson::object()); picojson::object& app_info_obj = app_info.get(); - ApplicationUtils::CreateApplicationInformation(handle, &app_info_obj); + utils::CreateApplicationInformation(handle, &app_info_obj); pkgmgrinfo_appinfo_destroy_appinfo(handle); picojson::value result = picojson::value(picojson::object()); @@ -388,7 +388,7 @@ PlatformResult PrepareAppControlForLaunchAppControl(const picojson::value& args, const picojson::object& app_control_obj = control.get(); app_control_h tmp_app_control = nullptr; - auto result = ApplicationUtils::ApplicationControlToService(app_control_obj, &tmp_app_control); + auto result = utils::ApplicationControlToService(app_control_obj, &tmp_app_control); std::unique_ptr::type, decltype(&app_control_destroy)> app_control_ptr(tmp_app_control, &app_control_destroy); @@ -487,7 +487,7 @@ void ApplicationManager::LaunchAppControl(const picojson::value& args) { if (APP_CONTROL_RESULT_SUCCEEDED == result) { LoggerD("App started"); return_value_obj.insert(std::make_pair("data", picojson::value(picojson::array()))); - if (!ApplicationUtils::ServiceToApplicationControlDataArray( + if (!utils::ServiceToApplicationControlDataArray( reply, &return_value_obj.find("data")->second.get())) { return_value_obj.erase("data"); } @@ -508,7 +508,7 @@ void ApplicationManager::LaunchAppControl(const picojson::value& args) { LaunchAppControlCallbackData* callback_data = static_cast(user_data); - auto result = ApplicationUtils::TranslateAppControlError(launch_result); + auto result = utils::TranslateAppControlError(launch_result); if (result.IsError()) { LogAndReportError(result, &(callback_data->response->get())); @@ -531,7 +531,7 @@ void ApplicationManager::LaunchAppControl(const picojson::value& args) { * If problems, such as failed application start occur, multiple attempts may solve the problem. */ auto launch_result = - ApplicationUtils::TranslateAppControlError(static_cast(app_control_send_launch_request_async( + utils::TranslateAppControlError(static_cast(app_control_send_launch_request_async( app_control_ptr.get(), result_callback, reply_callback, launch_app_user_data))); if (launch_result.IsError()) { @@ -547,7 +547,7 @@ namespace { PlatformResult TranslateLaunchError(app_control_error_e return_code) { ScopeLogger(); - auto result = ApplicationUtils::TranslateAppControlError(return_code); + auto result = utils::TranslateAppControlError(return_code); if (ErrorCode::SECURITY_ERR == result.error_code()) { result = PlatformResult(ErrorCode::UNKNOWN_ERR, "Unknown error."); } @@ -751,7 +751,7 @@ void ApplicationManager::FindAppControl(const picojson::value& args) { const picojson::object& app_control_obj = control.get(); app_control_h app_control = nullptr; - result = ApplicationUtils::ApplicationControlToService(app_control_obj, &app_control); + result = utils::ApplicationControlToService(app_control_obj, &app_control); std::shared_ptr::type> app_control_ptr( app_control, &app_control_destroy); // automatically release the memory @@ -779,7 +779,7 @@ void ApplicationManager::FindAppControl(const picojson::value& args) { picojson::array* array = static_cast(user_data); array->push_back(picojson::value(picojson::object())); - ApplicationUtils::CreateApplicationInformation(handle, + utils::CreateApplicationInformation(handle, &array->back().get()); pkgmgrinfo_appinfo_destroy_appinfo(handle); } @@ -856,7 +856,7 @@ void ApplicationManager::GetAppsContext(const picojson::value& args) { picojson::array* array = static_cast(user_data); array->push_back(picojson::value(picojson::object())); - if (!ApplicationUtils::CreateApplicationContext(app_context, + if (!utils::CreateApplicationContext(app_context, &array->back().get())) { array->pop_back(); return false; @@ -933,7 +933,7 @@ void ApplicationManager::GetAppContext(const picojson::value& args, picojson::ob } picojson::value result = picojson::value(picojson::object()); - ApplicationUtils::CreateApplicationContext(pid, app_id, &result.get()); + utils::CreateApplicationContext(pid, app_id, &result.get()); ReportSuccess(result, *out); } @@ -965,7 +965,7 @@ void ApplicationManager::GetAppsInfo(const picojson::value& args) { picojson::array* array = static_cast(user_data); array->push_back(picojson::value(picojson::object())); - ApplicationUtils::CreateApplicationInformation(handle, + utils::CreateApplicationInformation(handle, &array->back().get()); return 0; @@ -1005,7 +1005,7 @@ void ApplicationManager::GetAppInfo(const std::string& app_id, picojson::object* } picojson::value result = picojson::value(picojson::object()); - ApplicationUtils::CreateApplicationInformation(handle, &result.get()); + utils::CreateApplicationInformation(handle, &result.get()); pkgmgrinfo_appinfo_destroy_appinfo(handle); ReportSuccess(result, *out); @@ -1102,7 +1102,7 @@ void ApplicationManager::GetAppCerts(const std::string& app_id, picojson::object picojson::array* array = static_cast(user_data); array->push_back(picojson::value(picojson::object())); - ApplicationUtils::CreateApplicationCertificate(cert_name, cert_value, + utils::CreateApplicationCertificate(cert_name, cert_value, &array->back().get()); return true; @@ -1446,7 +1446,7 @@ void ApplicationManager::GetAppMetaData(const std::string& app_id, picojson::obj picojson::array* array = static_cast(user_data); array->push_back(picojson::value(picojson::object())); - ApplicationUtils::CreateApplicationMetaData(meta_key, meta_value, + utils::CreateApplicationMetaData(meta_key, meta_value, &array->back().get()); return 0; }; @@ -1567,7 +1567,7 @@ class ApplicationListChangedBroker { continue; } auto info = data_obj.insert(std::make_pair(kData, picojson::value(picojson::object()))); - ApplicationUtils::CreateApplicationInformation( + utils::CreateApplicationInformation( handle, &info.first->second.get()); pkgmgrinfo_appinfo_destroy_appinfo(handle); } break; diff --git a/src/application/application_utils.cc b/src/application/application_utils.cc index 5b46388b..3c834aba 100644 --- a/src/application/application_utils.cc +++ b/src/application/application_utils.cc @@ -27,8 +27,9 @@ using namespace common; namespace extension { namespace application { +namespace utils { -void ApplicationUtils::CreateApplicationInformation(const pkgmgrinfo_appinfo_h handle, +void CreateApplicationInformation(const pkgmgrinfo_appinfo_h handle, picojson::object* app_info) { ScopeLogger(); @@ -135,7 +136,7 @@ void ApplicationUtils::CreateApplicationInformation(const pkgmgrinfo_appinfo_h h // size is set at first attribute access (performance) } -bool ApplicationUtils::CreateApplicationContext(const app_context_h handle, +bool CreateApplicationContext(const app_context_h handle, picojson::object* app_context) { ScopeLogger(); char* app_id = nullptr; @@ -162,21 +163,21 @@ bool ApplicationUtils::CreateApplicationContext(const app_context_h handle, return true; } -void ApplicationUtils::CreateApplicationContext(pid_t pid, const std::string& app_id, +void CreateApplicationContext(pid_t pid, const std::string& app_id, picojson::object* app_context) { ScopeLogger(); app_context->insert(std::make_pair("id", picojson::value(std::to_string(pid)))); app_context->insert(std::make_pair("appId", picojson::value(app_id))); } -void ApplicationUtils::CreateApplicationCertificate(const char* cert_type, const char* cert_value, +void CreateApplicationCertificate(const char* cert_type, const char* cert_value, picojson::object* app_certificate) { ScopeLogger(); app_certificate->insert(std::make_pair("type", picojson::value(cert_type))); app_certificate->insert(std::make_pair("value", picojson::value(cert_value))); } -void ApplicationUtils::CreateApplicationMetaData(const char* key, const char* value, +void CreateApplicationMetaData(const char* key, const char* value, picojson::object* app_meta_data) { ScopeLogger(); app_meta_data->insert(std::make_pair("key", picojson::value(key))); @@ -216,7 +217,7 @@ PlatformResult SetAppControlTextField(app_control_h app_control, const std::stri auto result = setter(app_control, value.c_str()); auto result_translated = - ApplicationUtils::TranslateAppControlError(static_cast(result)); + TranslateAppControlError(static_cast(result)); if (result_translated.IsError()) { LoggerD("Setting app_control's %s field failed: %s", field_name.c_str(), @@ -253,7 +254,7 @@ PlatformResult SetAppControlLaunchModeField(app_control_h app_control, } auto result = app_control_set_launch_mode(app_control, LaunchModeStringToEnum(launch_mode_str)); - return ApplicationUtils::TranslateAppControlError(static_cast(result)); + return TranslateAppControlError(static_cast(result)); } PlatformResult SetAppControlDataField(app_control_h app_control, const picojson::array& data) { @@ -261,7 +262,7 @@ PlatformResult SetAppControlDataField(app_control_h app_control, const picojson: for (auto iter = data.begin(); iter != data.end(); ++iter) { if (iter->is()) { - PlatformResult ret = ApplicationUtils::ApplicationControlDataToServiceExtraData( + PlatformResult ret = ApplicationControlDataToServiceExtraData( iter->get(), app_control); if (ret.IsError()) { return ret; @@ -294,7 +295,7 @@ PlatformResult SetAppControlFieldIfValueSpecified( } // namespace -PlatformResult ApplicationUtils::ApplicationControlToService( +PlatformResult ApplicationControlToService( const picojson::object& app_control_obj, app_control_h* app_control) { ScopeLogger(); @@ -366,7 +367,7 @@ PlatformResult ApplicationUtils::ApplicationControlToService( return PlatformResult(ErrorCode::NO_ERROR); } -PlatformResult ApplicationUtils::ApplicationControlDataToServiceExtraData( +PlatformResult ApplicationControlDataToServiceExtraData( const picojson::object& app_control_data, app_control_h app_control) { ScopeLogger(); @@ -408,7 +409,7 @@ PlatformResult ApplicationUtils::ApplicationControlDataToServiceExtraData( return PlatformResult(ErrorCode::NO_ERROR); } -void ApplicationUtils::ServiceToApplicationControl(app_control_h app_control, +void ServiceToApplicationControl(app_control_h app_control, picojson::object* app_control_obj) { ScopeLogger(); @@ -484,7 +485,7 @@ void ApplicationUtils::ServiceToApplicationControl(app_control_h app_control, app_control, &app_control_obj->find(kDataAppControlField)->second.get()); } -void ApplicationUtils::ServiceExtraDataToApplicationControlData( +void ServiceExtraDataToApplicationControlData( app_control_h app_control, const std::string& key, picojson::object* app_control_data) { ScopeLogger(); @@ -535,14 +536,25 @@ void ApplicationUtils::ServiceExtraDataToApplicationControlData( app_control_data->insert(std::make_pair("value", picojson::value(value_array))); } -bool ApplicationUtils::ServiceToApplicationControlDataArray(app_control_h app_control, +bool ServiceExtraDataCallback(app_control_h app_control, const char* key, + void* user_data) { + ScopeLogger(); + picojson::array* data = static_cast(user_data); + + data->push_back(picojson::value(picojson::object())); + ServiceExtraDataToApplicationControlData(app_control, key, &data->back().get()); + + return true; +} + +bool ServiceToApplicationControlDataArray(app_control_h app_control, picojson::array* data) { ScopeLogger(); int ret = app_control_foreach_extra_data(app_control, ServiceExtraDataCallback, data); return APP_CONTROL_ERROR_NONE == ret; } -PlatformResult ApplicationUtils::TranslateAppControlError(app_control_error_e return_code) { +PlatformResult TranslateAppControlError(app_control_error_e return_code) { ScopeLogger("Return code: %d (%s)", static_cast(return_code), get_error_message(static_cast(return_code))); @@ -572,16 +584,6 @@ PlatformResult ApplicationUtils::TranslateAppControlError(app_control_error_e re } } -bool ApplicationUtils::ServiceExtraDataCallback(app_control_h app_control, const char* key, - void* user_data) { - ScopeLogger(); - picojson::array* data = static_cast(user_data); - - data->push_back(picojson::value(picojson::object())); - ServiceExtraDataToApplicationControlData(app_control, key, &data->back().get()); - - return true; -} - +} // namespace utils } // namespace application } // namespace extension diff --git a/src/application/application_utils.h b/src/application/application_utils.h index 308827be..cdc935f0 100644 --- a/src/application/application_utils.h +++ b/src/application/application_utils.h @@ -26,45 +26,36 @@ namespace extension { namespace application { +namespace utils { -class ApplicationUtils { - public: - static void CreateApplicationInformation(const pkgmgrinfo_appinfo_h handle, - picojson::object* app_info); +void CreateApplicationInformation(const pkgmgrinfo_appinfo_h handle, picojson::object* app_info); - static bool CreateApplicationContext(const app_context_h handle, picojson::object* app_context); +bool CreateApplicationContext(const app_context_h handle, picojson::object* app_context); - static void CreateApplicationContext(pid_t pid, const std::string& app_id, - picojson::object* app_context); +void CreateApplicationContext(pid_t pid, const std::string& app_id, + picojson::object* app_context); - static void CreateApplicationCertificate(const char* cert_type, const char* cert_value, - picojson::object* app_certificate); +void CreateApplicationCertificate(const char* cert_type, const char* cert_value, + picojson::object* app_certificate); - static void CreateApplicationMetaData(const char* key, const char* value, - picojson::object* app_meta_data); +void CreateApplicationMetaData(const char* key, const char* value, picojson::object* app_meta_data); - static common::PlatformResult ApplicationControlToService(const picojson::object& app_control_obj, - app_control_h* app_control); +common::PlatformResult ApplicationControlToService(const picojson::object& app_control_obj, + app_control_h* app_control); - static common::PlatformResult ApplicationControlDataToServiceExtraData( - const picojson::object& app_control_data, app_control_h app_control); +common::PlatformResult ApplicationControlDataToServiceExtraData( + const picojson::object& app_control_data, app_control_h app_control); - static void ServiceToApplicationControl(app_control_h app_control, - picojson::object* app_control_obj); +void ServiceToApplicationControl(app_control_h app_control, picojson::object* app_control_obj); - static void ServiceExtraDataToApplicationControlData(app_control_h app_control, - const std::string& key, - picojson::object* app_control_data); +void ServiceExtraDataToApplicationControlData(app_control_h app_control, const std::string& key, + picojson::object* app_control_data); - static bool ServiceToApplicationControlDataArray(app_control_h app_control, - picojson::array* data); +bool ServiceToApplicationControlDataArray(app_control_h app_control, picojson::array* data); - static common::PlatformResult TranslateAppControlError(app_control_error_e error_code); - - private: - static bool ServiceExtraDataCallback(app_control_h app_control, const char* key, void* user_data); -}; +common::PlatformResult TranslateAppControlError(app_control_error_e error_code); +} // namespace utils } // namespace application } // namespace extension diff --git a/src/application/requested_application_control.cc b/src/application/requested_application_control.cc index d0a8661a..eeec2e83 100644 --- a/src/application/requested_application_control.cc +++ b/src/application/requested_application_control.cc @@ -81,7 +81,7 @@ void RequestedApplicationControl::ToJson(picojson::object* out) { out->insert(std::make_pair("callerAppId", picojson::value(caller_app_id_))); auto appControl = out->insert(std::make_pair("appControl", picojson::value(picojson::object()))); - ApplicationUtils::ServiceToApplicationControl( + utils::ServiceToApplicationControl( app_control_.get(), &appControl.first->second.get()); } } @@ -115,10 +115,10 @@ void RequestedApplicationControl::ReplyResult(const picojson::value& args, picoj if (!data.empty()) { for (auto iter = data.begin(); iter != data.end(); ++iter) { - result = ApplicationUtils::ApplicationControlDataToServiceExtraData( + result = utils::ApplicationControlDataToServiceExtraData( iter->get(), reply); if (result.IsError()) { - LogAndReportError(result, out, ("Failed ApplicationControlDataToServiceExtraData()")); + LogAndReportError(result, out, ("Failed utils::ApplicationControlDataToServiceExtraData()")); return; } } -- 2.34.1