* limitations under the License.
*/
+#include <memory>
+
#include "alarm_utils.h"
#include "common/logger.h"
return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, "Invalid parameter passed.");
}
- app_control_create(app_control);
+ app_control_h app_control_tmp = nullptr;
+ int result = app_control_create(&app_control_tmp);
+
+ if (APP_CONTROL_ERROR_NONE != result) {
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Creation AppControl failed.",
+ ("Problem with create handle."));
+ }
+
+ std::unique_ptr<std::remove_pointer<app_control_h>::type, int(*)(app_control_h)> app_control_ptr(
+ app_control_tmp, &app_control_destroy);
+
- int ret = app_control_set_operation(*app_control, it_operation->second.get<std::string>().c_str());
+ int ret = app_control_set_operation(app_control_tmp, it_operation->second.get<std::string>().c_str());
if (APP_CONTROL_ERROR_NONE != ret) {
return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Error while setting operation.",
("Failed app_control_set_operation(): %d (%s)", ret, get_error_message(ret)));
const auto it_uri = obj.find("uri");
if (it_end != it_uri && it_uri->second.is<std::string>()) {
- ret = app_control_set_uri(*app_control, it_uri->second.get<std::string>().c_str());
+ ret = app_control_set_uri(app_control_tmp, it_uri->second.get<std::string>().c_str());
if (APP_CONTROL_ERROR_NONE != ret) {
return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Error while setting uri.",
("Failed app_control_set_uri(): %d (%s)", ret, get_error_message(ret)));
const auto it_mime = obj.find("mime");
if (it_end != it_mime && it_mime->second.is<std::string>()) {
- ret = app_control_set_mime(*app_control, it_mime->second.get<std::string>().c_str());
+ ret = app_control_set_mime(app_control_tmp, it_mime->second.get<std::string>().c_str());
if (APP_CONTROL_ERROR_NONE != ret) {
return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Error while setting mime.",
("Failed app_control_set_mime(): %d (%s)", ret, get_error_message(ret)));
const auto it_category = obj.find("category");
if (it_end != it_category && it_category->second.is<std::string>()) {
- ret = app_control_set_category(*app_control, it_category->second.get<std::string>().c_str());
+ ret = app_control_set_category(app_control_tmp, it_category->second.get<std::string>().c_str());
if (APP_CONTROL_ERROR_NONE != ret) {
return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Error while setting category.",
("Failed app_control_set_category(): %d (%s)", ret, get_error_message(ret)));
PlatformResult result = PlatformResult(ErrorCode::NO_ERROR);
for (auto iter = data.begin(); iter != data.end(); ++iter) {
- result = AppControlToServiceExtraData(iter->get<picojson::object>(), app_control);
+ result = AppControlToServiceExtraData(iter->get<picojson::object>(), &app_control_tmp);
if (!result) {
LoggerE("Failed AppControlToServiceExtraData()");
return result;
}
}
+ *app_control = app_control_ptr.release();
+
return PlatformResult(ErrorCode::NO_ERROR);
}
return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, "Invalid parameter was passed.");
}
- app_control_create(app_control);
+ app_control_h app_control_tmp = nullptr;
+ int result = app_control_create(&app_control_tmp);
+
+ if (APP_CONTROL_ERROR_NONE != result) {
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Creation AppControl failed.",
+ ("Problem with create handle."));
+ }
+
+ std::unique_ptr<std::remove_pointer<app_control_h>::type, int(*)(app_control_h)> app_control_ptr(
+ app_control_tmp, &app_control_destroy);
// operation
- app_control_set_operation(*app_control, it_operation->second.get<std::string>().c_str());
+ app_control_set_operation(app_control_tmp, it_operation->second.get<std::string>().c_str());
// uri
if (it_uri->second.is<std::string>()) {
- app_control_set_uri(*app_control, it_uri->second.get<std::string>().c_str());
+ app_control_set_uri(app_control_tmp, it_uri->second.get<std::string>().c_str());
}
// mime
if (it_mime->second.is<std::string>()) {
- app_control_set_mime(*app_control, it_mime->second.get<std::string>().c_str());
+ app_control_set_mime(app_control_tmp, it_mime->second.get<std::string>().c_str());
}
// category
if (it_category->second.is<std::string>()) {
- app_control_set_category(*app_control, it_category->second.get<std::string>().c_str());
+ app_control_set_category(app_control_tmp, it_category->second.get<std::string>().c_str());
}
// ApplicationControlData
for (auto iter = data.begin(); iter != data.end(); ++iter) {
if (iter->is<picojson::object>()) {
PlatformResult ret =
- ApplicationControlDataToServiceExtraData(iter->get<picojson::object>(), *app_control);
+ ApplicationControlDataToServiceExtraData(iter->get<picojson::object>(), app_control_tmp);
if (ret.IsError()) {
LoggerE("Failed ApplicationControlDataToServiceExtraData()");
return ret;
}
}
+ *app_control = app_control_ptr.release();
+
return PlatformResult(ErrorCode::NO_ERROR);
}