return err;
}
+EXPORT_API int msg_get_vobject_data(msg_handle_t handle, msg_message_id_t msg_id, void** result_data)
+{
+ msg_error_t err = MSG_SUCCESS;
+
+ if (handle == NULL || result_data == NULL)
+ {
+ MSG_FATAL("handle or result_data is NULL");
+ return -EINVAL;
+ }
+
+ MsgHandle* pHandle = (MsgHandle*)handle;
+
+ try
+ {
+ err = pHandle->getVobject(msg_id, result_data);
+ }
+ catch (MsgException& e)
+ {
+ MSG_FATAL("%s", e.what());
+ return MSG_ERR_STORAGE_ERROR;
+ }
+
+ return err;
+}
EXPORT_API int msg_get_conversation(msg_handle_t handle, msg_message_id_t msg_id, msg_struct_t conv)
{
msg_error_t err = MSG_SUCCESS;
catch (MsgException& e)
{
MSG_FATAL("%s", e.what());
+ msg_release_struct((msg_struct_t *)&msg_s);
return MSG_ERR_STORAGE_ERROR;
}
if (msg_type == MSG_TYPE_MMS && msgInfo->pMmsData) //free pMmsData directly. It is added to enhance performance
delete [] static_cast<char*>(msgInfo->pMmsData);
+ msg_release_struct((msg_struct_t *)&msg_s);
+
if (err < 0)
{
MSG_DEBUG("err [%d]", err);
return err;
}
-
- msg_release_struct((msg_struct_t *)&msg_s);
}
return MSG_SUCCESS;
catch (MsgException& e)
{
MSG_FATAL("%s", e.what());
+ msg_release_struct((msg_struct_t *)&msg_s);
return MSG_ERR_STORAGE_ERROR;
}
+ msg_release_struct((msg_struct_t *)&msg_s);
+
if (err < 0)
{
MSG_DEBUG("err [%d]", err);
return err;
}
-
- msg_release_struct((msg_struct_t *)&msg_s);
}
return MSG_SUCCESS;
}
-EXPORT_API int msg_backup_message(msg_handle_t handle)
+EXPORT_API int msg_backup_message(msg_handle_t handle, msg_message_backup_type_t type, const char *backup_filepath)
{
msg_error_t err = MSG_SUCCESS;
- if (handle == NULL)
+ if (handle == NULL || backup_filepath == NULL)
{
return -EINVAL;
}
try
{
- err = pHandle->backupMessage();
+ err = pHandle->backupMessage(type, backup_filepath);
}
catch (MsgException& e)
{
}
-EXPORT_API int msg_restore_message(msg_handle_t handle)
+EXPORT_API int msg_restore_message(msg_handle_t handle, const char *backup_filepath)
{
msg_error_t err = MSG_SUCCESS;
- if (handle == NULL)
+ if (handle == NULL || backup_filepath == NULL)
{
return -EINVAL;
}
try
{
- err = pHandle->restoreMessage();
+ err = pHandle->restoreMessage(backup_filepath);
}
catch (MsgException& e)
{
{
msg_error_t err = MSG_SUCCESS;
if(!report_info)
- return MSG_ERR_NULL_POINTER;
+ return MSG_ERR_NULL_POINTER;
MSG_REPORT_STATUS_INFO_S *pReport = (MSG_REPORT_STATUS_INFO_S *)report_info;
switch(field)