da_result_t check_enough_storage(stage_info *stage)
{
	da_result_t ret = DA_RESULT_OK;
	unsigned long cont_size = 0;
	da_storage_size_t avail_memory = {0, };
	da_storage_type_t type = DA_STORAGE_PHONE;

	DA_LOG_FUNC_START(Default);

	/* check enough storage here because of multiple download */
	ret = get_storage_type(&type);
	if (DA_RESULT_OK != ret)
		return ret;

	cont_size
		= GET_CONTENT_STORE_CURRENT_FILE_SIZE(GET_STAGE_CONTENT_STORE_INFO(stage));

	DA_LOG(Default,"cont_size [%d]", cont_size);
	if (cont_size) {
		ret = get_available_memory(DA_STORAGE_PHONE, &avail_memory);
		if (DA_RESULT_OK == ret && (avail_memory.b_available
		        < ((cont_size + SAVE_FILE_BUFFERING_SIZE_5MB)
		                / avail_memory.b_size))) /* 5MB buffering */
		{
			DA_LOG_ERR(Default,"There is no space for content in Phone memory");
			return DA_ERR_DISK_FULL;
		} else if (DA_RESULT_OK != ret) {
			return ret;
		}
		/* If default memeory type is mmc,
		 * it need to check phone memroy for temproary folder
		 * and mmc memory for actual install folder */
		if (type == DA_STORAGE_MMC) {
			DA_LOG(Default,"Storage type == DA_STORAGE_MMC\n");
			ret = get_available_memory(type, &avail_memory);
			if (DA_RESULT_OK == ret && (avail_memory.b_available
			        < ((cont_size + SAVE_FILE_BUFFERING_SIZE_50KB)
			                / avail_memory.b_size))) /* 50KB buffering */
			{
				DA_LOG_ERR(Default,"There is no space for content in MMC memory");
				return DA_ERR_DISK_FULL;
			} else if (DA_RESULT_OK != ret) {
				return ret;
			}
		}
	}

	return ret;
}
Пример #2
0
da_result_t handle_after_download(stage_info *stage)
{
	da_result_t ret = DA_RESULT_OK;
	da_mime_type_id_t mime_type = DA_MIME_TYPE_NONE;

	DA_LOG_FUNC_START(Default);

	mime_type = get_mime_type_id(
	                GET_CONTENT_STORE_CONTENT_TYPE(GET_STAGE_CONTENT_STORE_INFO(stage)));

	switch (mime_type) {
		case DA_MIME_TYPE_NONE:
			DA_LOG(Default, "DA_MIME_TYPE_NONE");
			ret = DA_ERR_MISMATCH_CONTENT_TYPE;
			break;
		default:
			CHANGE_DOWNLOAD_STATE(DOWNLOAD_STATE_FINISH, stage);
			break;
	} /* end of switch */

	return ret;
}