return;
}
} else {
- app_control_create(&app_control);
- app_control_set_operation(app_control, APP_CONTROL_OPERATION_DEFAULT);
+ int ret = app_control_create(&app_control);
+
+ if (APP_CONTROL_ERROR_NONE != ret) {
+ LogAndReportError(PlatformResult(ErrorCode::UNKNOWN_ERR, "app_control_create() failed."),
+ &out,
+ ("app_control_create() failed: %d (%s)", ret, get_error_message(ret)));
+ return;
+ }
+ ret = app_control_set_operation(app_control, APP_CONTROL_OPERATION_DEFAULT);
+ if (APP_CONTROL_ERROR_NONE != ret) {
+ LogAndReportError(
+ PlatformResult(ErrorCode::UNKNOWN_ERR, "app_control_set_operation() failed."), &out,
+ ("app_control_set_operation() failed: %d (%s)", ret, get_error_message(ret)));
+ return;
+ }
}
app_control_set_app_id(app_control, app_id.c_str());
notification_free(notification_handle);
};
- if (ALARM_ERROR_NONE != alarm_get_app_control(id, &app_control)) {
- if (ALARM_ERROR_NONE != alarm_get_notification(id, ¬ification_handle)) {
+ ret = alarm_get_app_control(id, &app_control);
+ if (ALARM_ERROR_NONE != ret) {
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Unknown error occurred.",
+ ("Getting data failed: %d (%s)", ret, get_error_message(ret)));
+ } else {
+ ret = alarm_get_notification(id, ¬ification_handle);
+ if (ALARM_ERROR_NONE != ret) {
return LogAndCreateResult(ErrorCode::NOT_FOUND_ERR, "Alarm not found.",
("Alarm not found: %d (%s)", ret, get_error_message(ret)));
} else {
* New implementation, using app_control_send_launch_request_async makes only one attempt.
* If problems, such as failed application start occur, multiple attempts may solve the problem.
*/
- auto launch_result =
- utils::TranslateAppControlError(static_cast<app_control_error_e>(app_control_send_launch_request_async(
+ auto launch_result = utils::TranslateAppControlError(
+ static_cast<app_control_error_e>(app_control_send_launch_request_async(
app_control_ptr.get(), result_callback, reply_callback, launch_app_user_data)));
if (launch_result.IsError()) {
* New implementation, using app_control_send_launch_request_async makes only one attempt.
* If problems, such as failed application start occur, multiple attempts may solve the problem.
*/
- auto launch_result = TranslateLaunchError(static_cast<app_control_error_e>(app_control_send_launch_request_async(
- app_control_ptr.get(), result_callback, nullptr, launch_user_data)));
+ auto launch_result =
+ TranslateLaunchError(static_cast<app_control_error_e>(app_control_send_launch_request_async(
+ app_control_ptr.get(), result_callback, nullptr, launch_user_data)));
if (launch_result.IsError()) {
delete launch_user_data;
picojson::array* array = static_cast<picojson::array*>(user_data);
array->push_back(picojson::value(picojson::object()));
- utils::CreateApplicationInformation(handle,
- &array->back().get<picojson::object>());
+ utils::CreateApplicationInformation(handle, &array->back().get<picojson::object>());
pkgmgrinfo_appinfo_destroy_appinfo(handle);
}
picojson::array* array = static_cast<picojson::array*>(user_data);
array->push_back(picojson::value(picojson::object()));
- if (!utils::CreateApplicationContext(app_context,
- &array->back().get<picojson::object>())) {
+ if (!utils::CreateApplicationContext(app_context, &array->back().get<picojson::object>())) {
array->pop_back();
return false;
}
picojson::array* array = static_cast<picojson::array*>(user_data);
array->push_back(picojson::value(picojson::object()));
- utils::CreateApplicationInformation(handle,
- &array->back().get<picojson::object>());
+ utils::CreateApplicationInformation(handle, &array->back().get<picojson::object>());
return 0;
};
array->push_back(picojson::value(picojson::object()));
utils::CreateApplicationCertificate(cert_name, cert_value,
- &array->back().get<picojson::object>());
+ &array->back().get<picojson::object>());
return true;
};
picojson::array* array = static_cast<picojson::array*>(user_data);
array->push_back(picojson::value(picojson::object()));
- utils::CreateApplicationMetaData(meta_key, meta_value,
- &array->back().get<picojson::object>());
+ utils::CreateApplicationMetaData(meta_key, meta_value, &array->back().get<picojson::object>());
return 0;
};
continue;
}
auto info = data_obj.insert(std::make_pair(kData, picojson::value(picojson::object())));
- utils::CreateApplicationInformation(
- handle, &info.first->second.get<picojson::object>());
+ utils::CreateApplicationInformation(handle, &info.first->second.get<picojson::object>());
pkgmgrinfo_appinfo_destroy_appinfo(handle);
} break;
case Event::kUninstalled:
namespace application {
namespace utils {
-void CreateApplicationInformation(const pkgmgrinfo_appinfo_h handle,
- picojson::object* app_info) {
+void CreateApplicationInformation(const pkgmgrinfo_appinfo_h handle, picojson::object* app_info) {
ScopeLogger();
char* tmp_str = nullptr;
// size is set at first attribute access (performance)
}
-bool CreateApplicationContext(const app_context_h handle,
- picojson::object* app_context) {
+bool CreateApplicationContext(const app_context_h handle, picojson::object* app_context) {
ScopeLogger();
char* app_id = nullptr;
return true;
}
-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) {
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 CreateApplicationCertificate(const char* cert_type, const char* cert_value,
- picojson::object* app_certificate) {
+ 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 CreateApplicationMetaData(const char* key, const char* value,
- picojson::object* app_meta_data) {
+ picojson::object* app_meta_data) {
ScopeLogger();
app_meta_data->insert(std::make_pair("key", picojson::value(key)));
app_meta_data->insert(std::make_pair("value", picojson::value(value)));
auto setter = setter_it->second;
auto result = setter(app_control, value.c_str());
- auto result_translated =
- TranslateAppControlError(static_cast<app_control_error_e>(result));
+ auto result_translated = TranslateAppControlError(static_cast<app_control_error_e>(result));
if (result_translated.IsError()) {
LoggerD("Setting app_control's %s field failed: %s", field_name.c_str(),
for (auto iter = data.begin(); iter != data.end(); ++iter) {
if (iter->is<picojson::object>()) {
- PlatformResult ret = ApplicationControlDataToServiceExtraData(
- iter->get<picojson::object>(), app_control);
+ PlatformResult ret =
+ ApplicationControlDataToServiceExtraData(iter->get<picojson::object>(), app_control);
if (ret.IsError()) {
return ret;
}
} // namespace
-PlatformResult ApplicationControlToService(
- const picojson::object& app_control_obj, app_control_h* app_control) {
+PlatformResult ApplicationControlToService(const picojson::object& app_control_obj,
+ app_control_h* app_control) {
ScopeLogger();
const auto it_operation = app_control_obj.find(kOperationAppControlField);
return PlatformResult(ErrorCode::NO_ERROR);
}
-PlatformResult ApplicationControlDataToServiceExtraData(
- const picojson::object& app_control_data, app_control_h app_control) {
+PlatformResult ApplicationControlDataToServiceExtraData(const picojson::object& app_control_data,
+ app_control_h app_control) {
ScopeLogger();
const auto it_key = app_control_data.find("key");
if (1 == value_data.size()) {
result = app_control_add_extra_data(app_control, key.c_str(), value_data[0]);
} else {
- result = app_control_add_extra_data_array(app_control, key.c_str(), value_data.data(), value_data.size());
+ result = app_control_add_extra_data_array(app_control, key.c_str(), value_data.data(),
+ value_data.size());
}
if (APP_CONTROL_ERROR_INVALID_PARAMETER == result) {
return PlatformResult(ErrorCode::NO_ERROR);
}
-void ServiceToApplicationControl(app_control_h app_control,
- picojson::object* app_control_obj) {
+void ServiceToApplicationControl(app_control_h app_control, picojson::object* app_control_obj) {
ScopeLogger();
int ret = 0;
app_control, &app_control_obj->find(kDataAppControlField)->second.get<picojson::array>());
}
-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) {
ScopeLogger();
int ret = 0;
app_control_data->insert(std::make_pair("value", picojson::value(value_array)));
}
-bool ServiceExtraDataCallback(app_control_h app_control, const char* key,
- void* user_data) {
+bool ServiceExtraDataCallback(app_control_h app_control, const char* key, void* user_data) {
ScopeLogger();
picojson::array* data = static_cast<picojson::array*>(user_data);
return true;
}
-bool ServiceToApplicationControlDataArray(app_control_h app_control,
- picojson::array* data) {
+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;
bool CreateApplicationContext(const app_context_h handle, picojson::object* app_context);
-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);
void CreateApplicationCertificate(const char* cert_type, const char* cert_value,
- picojson::object* app_certificate);
+ picojson::object* app_certificate);
void CreateApplicationMetaData(const char* key, const char* value, picojson::object* app_meta_data);
common::PlatformResult ApplicationControlToService(const picojson::object& app_control_obj,
- app_control_h* app_control);
+ app_control_h* app_control);
common::PlatformResult ApplicationControlDataToServiceExtraData(
const picojson::object& app_control_data, app_control_h app_control);
void ServiceToApplicationControl(app_control_h app_control, picojson::object* app_control_obj);
void ServiceExtraDataToApplicationControlData(app_control_h app_control, const std::string& key,
- picojson::object* app_control_data);
+ picojson::object* app_control_data);
bool ServiceToApplicationControlDataArray(app_control_h app_control, picojson::array* data);
out->insert(std::make_pair("callerAppId", picojson::value(caller_app_id_)));
auto appControl =
out->insert(std::make_pair("appControl", picojson::value(picojson::object())));
- utils::ServiceToApplicationControl(
- app_control_.get(), &appControl.first->second.get<picojson::object>());
+ utils::ServiceToApplicationControl(app_control_.get(),
+ &appControl.first->second.get<picojson::object>());
}
}
}
// create reply
- app_control_h reply;
- app_control_create(&reply);
+ app_control_h reply = nullptr;
+ int ret = app_control_create(&reply);
+ if (APP_CONTROL_ERROR_NONE != ret) {
+ LogAndReportError(PlatformResult(ErrorCode::UNKNOWN_ERR, "app control create failed."), out,
+ ("app control create failed: %d", ret));
+ return;
+ }
std::unique_ptr<std::remove_pointer<app_control_h>::type, int (*)(app_control_h)> reply_ptr(
reply, &app_control_destroy); // automatically release the memory
if (!data.empty()) {
for (auto iter = data.begin(); iter != data.end(); ++iter) {
- result = utils::ApplicationControlDataToServiceExtraData(
- iter->get<picojson::object>(), reply);
+ result =
+ utils::ApplicationControlDataToServiceExtraData(iter->get<picojson::object>(), reply);
if (result.IsError()) {
- LogAndReportError(result, out, ("Failed utils::ApplicationControlDataToServiceExtraData()"));
+ LogAndReportError(result, out,
+ ("Failed utils::ApplicationControlDataToServiceExtraData()"));
return;
}
}
}
// send reply
- int ret =
+ ret =
app_control_reply_to_launch_request(reply, app_control_.get(), APP_CONTROL_RESULT_SUCCEEDED);
if (APP_CONTROL_ERROR_NONE != ret) {
LogAndReportError(PlatformResult(ErrorCode::NOT_FOUND_ERR, "Cannot find caller."), out,
}
// create reply
- app_control_h reply;
- app_control_create(&reply);
+ app_control_h reply = nullptr;
+ int ret = app_control_create(&reply);
+ if (APP_CONTROL_ERROR_NONE != ret) {
+ LogAndReportError(PlatformResult(ErrorCode::UNKNOWN_ERR, "app control create failed."), out,
+ ("app control create failed: %d", ret));
+ return;
+ }
std::unique_ptr<std::remove_pointer<app_control_h>::type, int (*)(app_control_h)> reply_ptr(
reply, &app_control_destroy); // automatically release the memory
// send reply
- int ret =
- app_control_reply_to_launch_request(reply, app_control_.get(), APP_CONTROL_RESULT_FAILED);
+ ret = app_control_reply_to_launch_request(reply, app_control_.get(), APP_CONTROL_RESULT_FAILED);
if (APP_CONTROL_ERROR_NONE != ret) {
LogAndReportError(PlatformResult(ErrorCode::NOT_FOUND_ERR, "Cannot find caller."), out,
("Cannot find caller: %d (%s)", ret, get_error_message(ret)));
guint id = g_idle_add(BaseProgressCallback::callProgressCallbackCB, static_cast<void*>(ph));
if (!id) {
- LoggerE("g_idle_add fails");
+ LoggerE("g_idle_add failed");
delete ph;
ph = NULL;
}
result.message().c_str());
callback->setError(result.error_code(), result.message().c_str());
if (!g_idle_add(callErrorCallback, static_cast<void*>(callback))) {
- LoggerE("g_idle_add fails");
+ LoggerE("g_idle_add failed");
delete callback;
callback = NULL;
}
return bundle_add_str_array(bundle_data, key.c_str(), cstrings.data(), cstrings.size());
}
-int BundleAddByteStreamArray(const std::string& key, const picojson::value& value, bundle* bundle_data) {
+int BundleAddByteStreamArray(const std::string& key, const picojson::value& value,
+ bundle* bundle_data) {
ScopeLogger();
const auto& jarray = value.get<picojson::array>();
#include "platform_result.h"
-#include <string>
+#include <initializer_list>
#include <map>
+#include <string>
#include <vector>
-#include <initializer_list>
-
namespace common {
+template <typename NativeEnumType>
+class PlatformEnum {
+ using MapType = std::map<std::string, NativeEnumType>;
+ using RevMapType = std::map<NativeEnumType, std::string>;
-template<typename NativeEnumType>
-class PlatformEnum
-{
-using MapType = std::map<std::string, NativeEnumType>;
-using RevMapType = std::map<NativeEnumType, std::string>;
-
-using MapTypeConstIter = typename MapType::const_iterator;
+ using MapTypeConstIter = typename MapType::const_iterator;
-public:
- PlatformEnum(std::initializer_list<std::pair<const std::string, NativeEnumType>> m) : mapping_(m) {
- for (auto it: mapping_) {
+ public:
+ PlatformEnum(std::initializer_list<std::pair<const std::string, NativeEnumType>> m)
+ : mapping_(m) {
+ for (auto it : mapping_) {
rev_mapping_[it.second] = it.first;
}
}
return mapping_.cend();
}
-private:
+ private:
MapType mapping_;
RevMapType rev_mapping_;
};
+} // common
-} // common
-
-
-#endif // COMMON_PLATFORM_ENUM_H_
+#endif // COMMON_PLATFORM_ENUM_H_
void TaskQueue::ScheduleWorkInMainThread(const std::function<void()>& work) {
QueueData<void>* d = new QueueData<void>();
d->work_callback_ = work;
- g_idle_add(WorkCallback<void>, d);
+ if (!g_idle_add(WorkCallback<void>, d)) {
+ LoggerE("g_idle_add failed");
+ }
}
} // namespace common
QueueData<T>* d = new QueueData<T>();
d->work_callback_ = work;
d->data_ = data;
- g_idle_add(WorkCallback<T>, d);
+ if (!g_idle_add(WorkCallback<T>, d)) {
+ LoggerE("g_idle_add failed");
+ }
}
} // namespace common
void PrintDeprecationWarningFor(const char* className, const char* replacement) {
if (nullptr == replacement) {
- LoggerW("DEPRECATION WARNING: %s is deprecated and using it is not recommended.",
- className);
+ LoggerW("DEPRECATION WARNING: %s is deprecated and using it is not recommended.", className);
} else {
- LoggerW("DEPRECATION WARNING: %s is deprecated and using it is not recommended. Try using %s instead",
- className, replacement);
+ LoggerW(
+ "DEPRECATION WARNING: %s is deprecated and using it is not recommended. Try using %s "
+ "instead", className, replacement);
}
-
}
} // namespace tools
OnStart(download_id, user_data);
break;
case DOWNLOAD_STATE_PAUSED:
- g_idle_add(OnPaused, down_cb_ptr);
+ if (!g_idle_add(OnPaused, down_cb_ptr)) {
+ LoggerE("g_idle_add failed");
+ }
break;
case DOWNLOAD_STATE_COMPLETED:
- g_idle_add(OnFinished, down_cb_ptr);
+ if (!g_idle_add(OnFinished, down_cb_ptr)) {
+ LoggerE("g_idle_add failed");
+ }
break;
case DOWNLOAD_STATE_CANCELED:
- g_idle_add(OnCanceled, down_cb_ptr);
+ if (!g_idle_add(OnCanceled, down_cb_ptr)) {
+ LoggerE("g_idle_add failed");
+ }
break;
case DOWNLOAD_STATE_FAILED:
- g_idle_add(OnFailed, down_cb_ptr);
+ if (!g_idle_add(OnFailed, down_cb_ptr)) {
+ LoggerE("g_idle_add failed");
+ }
break;
default:
LoggerD("Unexpected download state: %d", state);
down_cb_ptr->received = received;
down_cb_ptr->native_download_id = download_id;
- g_idle_add(OnProgressChanged, down_cb_ptr);
+ if (!g_idle_add(OnProgressChanged, down_cb_ptr)) {
+ LoggerE("g_idle_add failed");
+ }
}
#define CHECK_CONNECTION_ERROR(ret) \
#include <string>
#include <vector>
+#include "common/json-utils.h"
#include "common/logger.h"
#include "common/picojson.h"
#include "common/platform_exception.h"
-#include "common/json-utils.h"
namespace extension {
namespace messageport {
const std::string& valueType = (*it).get("valueType").get<std::string>();
if ("stringValueType" == valueType) {
LoggerD("value is string");
- bundle_add(bundle, (*it).get("key").to_str().c_str(), (*it).get("value").to_str().c_str());
+ result = bundle_add(bundle, (*it).get("key").to_str().c_str(),
+ (*it).get("value").to_str().c_str());
+ if (BUNDLE_ERROR_NONE != result) {
+ LogAndReportError(
+ UnknownException("Unable to add data to bundle."), out,
+ ("bundle_add(data) error: %d, message: %s", result, get_error_message(result)));
+ }
} else if ("stringArrayValueType" == valueType) {
LoggerD("value is string array");
std::vector<picojson::value> value_array = (*it).get("value").get<picojson::array>();
arr[i] = iter->get<std::string>().c_str();
}
- bundle_add_str_array(bundle, (*it).get("key").to_str().c_str(), arr, size);
+ result = bundle_add_str_array(bundle, (*it).get("key").to_str().c_str(), arr, size);
+ if (BUNDLE_ERROR_NONE != result) {
+ LoggerE("bundle_add_str_array failed, error: %d (%s)", result, get_error_message(result));
+ }
delete[] arr;
} else if ("byteStreamValueType" == valueType) {
LoggerD("value is byte stream");
for (auto iter = value_array.begin(); iter != value_array.end(); ++iter, ++i) {
arr[i] = (int)(*iter).get<double>();
}
- bundle_add_byte(bundle, (*it).get("key").to_str().c_str(), arr, size);
+ result = bundle_add_byte(bundle, (*it).get("key").to_str().c_str(), arr, size);
+ if (BUNDLE_ERROR_NONE != result) {
+ LoggerE("bundle_add_byte failed, error: %d (%s)", result, get_error_message(result));
+ }
delete[] arr;
} else if ("byteStreamArrayValueType" == valueType) {
LoggerD("value is byte stream array");
std::vector<picojson::value> byteStreamArray = (*it).get("value").get<picojson::array>();
const size_t size = byteStreamArray.size();
- bundle_add_byte_array(bundle, (*it).get("key").to_str().c_str(), nullptr, size);
+ result = bundle_add_byte_array(bundle, (*it).get("key").to_str().c_str(), nullptr, size);
+ if (BUNDLE_ERROR_NONE != result) {
+ LoggerE("bundle_add_byte_array failed, error: %d (%s)", result, get_error_message(result));
+ }
size_t i = 0;
for (auto iter = byteStreamArray.begin(); iter != byteStreamArray.end(); ++iter, ++i) {
}
int slot_size = -1;
- vconf_get_int("db/private/email-service/slot_size", &(slot_size));
- if (slot_size > 0) {
+ ntv_ret = vconf_get_int("db/private/email-service/slot_size", &(slot_size));
+
+ if (0 == ntv_ret && slot_size > 0) {
m_slot_size = slot_size;
}
if (MESSAGE_CONVERSATION_ATTRIBUTE_TIMESTAMP == attribute_name) {
return FilterUtils::isTimeStampInRange(getTimestamp(), initial_value, end_value);
} else if (MESSAGE_CONVERSATION_ATTRIBUTE_MESSAGE_COUNT == attribute_name) {
- return initial_value->toULong() <= getMessageCount() && getMessageCount() <= end_value->toULong();
+ return initial_value->toULong() <= getMessageCount() &&
+ getMessageCount() <= end_value->toULong();
} else if (MESSAGE_CONVERSATION_ATTRIBUTE_UNREAD_MESSAGES == attribute_name) {
return initial_value->toULong() <= getUnreadMessages() &&
getUnreadMessages() <= end_value->toULong();
* limitations under the License.
*/
-#include "MsgCommon/AbstractFilter.h"
#include "message_folder.h"
+#include "MsgCommon/AbstractFilter.h"
#include "messaging_util.h"
namespace extension {