📄 jsr205.c
字号:
* FUNCTION
* mmi_jsr_receive_appmms_req_hldr
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_RECV_APPMMS_REQ primitive to Java
* PARAMETERS
* msg [?]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_receive_appmms_req_hldr(void *msg)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_recv_appmms_req_struct *Message = NULL;
wap_mmc_recv_appmms_rsp_struct response;
jsr_appid_msgid_list *appid_list = NULL;
S8 *appId = NULL;
U32 msgId = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (JSR_CNTX->state != JSR_STATE_IDLE)
{
memset(&response, 0, sizeof(wap_mmc_recv_appmms_rsp_struct));
response.result = JSR_RESULT_BUSY;
mmi_jsr_receive_appmms_rsp(&response, NULL, 0);
return;
}
Message = (wap_mmc_recv_appmms_req_struct*) msg;
*(Message->app_id + Message->app_id_len) = '\0';
appId = (S8*) Message->app_id;
JSR_CNTX->op = JSR_OP_RECV_MSG;
JSR_CNTX->state = JSR_STATE_RECV_MSG_HDR;
if (appId == NULL)
{
response.result = JSR_RESULT_INVALID_PARAMETER;
mmi_jsr_receive_appmms_rsp(&response, NULL, 0);
JsrCleanContext();
return;
}
else if (g_jsr_appid_object_list == NULL)
{
mmi_jsr_read_object_list_from_file();
}
appid_list = g_jsr_appid_object_list;
while (appid_list)
{
if ((appid_list->appId) && (strcmp((S8*) appid_list->appId, (S8*) appId) == 0))
{
ASSERT(appid_list->msgs);
msgId = appid_list->msgs->msgId;
if (JSR_RESULT_OK != mmi_jmms_java_mms_error(mmi_jmms_is_message_found(JSR_INBOX, msgId)))
{
mmi_jsr_remove_msgId_from_appId_list(msgId);
response.result = JSR_RESULT_ERROR_MSG_CORRUPTED;
mmi_jsr_receive_appmms_rsp(&response, NULL, 0);
JsrCleanContext();
return;
}
JSR_CNTX->msgId = msgId;
mmi_jmms_jsr_get_message_details(msgId, mmi_jsr_receive_appmms_post_req_hldr);
return;
}
appid_list = appid_list->next;
}
response.result = JSR_RESULT_NO_MSG_FOR_JAVA;
mmi_jsr_receive_appmms_rsp(&response, NULL, 0);
JsrCleanContext();
return;
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_receive_appmms_post_req_hldr
* DESCRIPTION
*
* PARAMETERS
* resp [?]
* buffer [?]
* buffer_size [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_receive_appmms_post_req_hldr(void *resp, S8 *buffer, U16 buffer_size)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_recv_appmms_rsp_struct *response = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
response = (wap_mmc_recv_appmms_rsp_struct*) resp;
response->result = JSR_RESULT_OK;
mmi_jsr_receive_appmms_rsp(response, buffer, buffer_size);
if (response->bdy_part_no != 0)
{
JSR_CNTX->total_media_obj_no = response->bdy_part_no;
JSR_CNTX->curr_media_obj_no = 1;
JSR_CNTX->state = JSR_STATE_RECV_MSG_BDY;
}
else
{
mmi_jsr_remove_msgId_from_appId_list(JSR_CNTX->msgId);
mmi_jmms_jsr_delete_msg(JSR_CNTX->msgId);
JsrCleanContext();
mmi_jmms_update_folder();
}
if (response != NULL)
{
jdd_MemFree(response);
response = NULL;
}
if (buffer != NULL)
{
jdd_MemFree(buffer);
buffer = NULL;
}
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_receive_appmms_rsp
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_RECV_APPMMS_RSP primitive to Java
* PARAMETERS
* response_struct [?]
* buffer [?]
* buffer_size [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_receive_appmms_rsp(wap_mmc_recv_appmms_rsp_struct *response_struct, S8 *buffer, U16 buffer_size)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_recv_appmms_rsp_struct *myMsgPtr = NULL;
ilm_struct *ilm_ptr = NULL;
peer_buff_struct *peer_buff_ptr = NULL;
U16 peer_pdu_len = 0;
U8 *peer_pdu = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
myMsgPtr = (wap_mmc_recv_appmms_rsp_struct*) OslConstructDataPtr(sizeof(wap_mmc_recv_appmms_rsp_struct));
memset((S8*)(myMsgPtr) + 4, 0, (sizeof(wap_mmc_recv_appmms_rsp_struct) - 4));
myMsgPtr->result = response_struct->result;
myMsgPtr->priority = response_struct->priority;
myMsgPtr->date = response_struct->date;
myMsgPtr->from_addr_no = response_struct->from_addr_no;
myMsgPtr->to_addr_no = response_struct->to_addr_no;
myMsgPtr->cc_addr_no = response_struct->cc_addr_no;
myMsgPtr->bdy_part_no = response_struct->bdy_part_no;
myMsgPtr->start_cnt_id_len = response_struct->start_cnt_id_len;
memset(myMsgPtr->start_cnt_id, 0, 100);
memcpy(myMsgPtr->start_cnt_id, response_struct->start_cnt_id, 100);
myMsgPtr->reply_app_id_len = response_struct->reply_app_id_len;
memset(myMsgPtr->reply_app_id, 0, 100);
memcpy(myMsgPtr->reply_app_id, response_struct->reply_app_id, 100);
if (buffer)
{
peer_buff_ptr = (peer_buff_struct*) construct_peer_buff(buffer_size, 0, 0, TD_CTRL);
peer_pdu = (U8*) get_pdu_ptr(peer_buff_ptr, &peer_pdu_len);
if (peer_pdu)
{
memcpy(peer_pdu, buffer, buffer_size);
}
}
ilm_ptr = allocate_ilm(MOD_WAP);
ilm_ptr->src_mod_id = MOD_WAP;
ilm_ptr->sap_id = J2ME_WAP_SAP;
ilm_ptr->dest_mod_id = MOD_JASYN;
ilm_ptr->local_para_ptr = (local_para_struct*) myMsgPtr;
ilm_ptr->msg_id = MSG_ID_WAP_MMC_RECV_APPMMS_RSP;
ilm_ptr->peer_buff_ptr = (peer_buff_struct*) peer_buff_ptr;
msg_send_ext_queue(ilm_ptr);
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_read_appmms_msg_part_req
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_READ_APPMMS_MSG_PART_REQ primitive to Java
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_read_appmms_msg_part_req(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_read_appmms_msg_part_rsp_struct response;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (JSR_CNTX->state != JSR_STATE_RECV_MSG_BDY)
{
memset(&response, 0, sizeof(wap_mmc_read_appmms_msg_part_rsp_struct));
response.result = JSR_RESULT_ACCESS_DENY;
mmi_jsr_read_appmms_msg_part_rsp(&response);
}
else
{
if (mmi_jmms_jsr_generate_recv_msg_body_part(
JSR_CNTX->msgId,
&(JSR_CNTX->curr_media_obj_no),
(JSR_CNTX->total_media_obj_no),
&response))
{
mmi_jsr_read_appmms_msg_part_rsp(&response);
JSR_CNTX->curr_media_obj_no = JSR_CNTX->curr_media_obj_no + 1;
if (JSR_CNTX->curr_media_obj_no > JSR_CNTX->total_media_obj_no)
{
mmi_jsr_remove_msgId_from_appId_list(JSR_CNTX->msgId);
mmi_jmms_jsr_delete_msg(JSR_CNTX->msgId);
JsrCleanContext();
mmi_jmms_update_folder();
}
}
else
{
memset(&response, 0, sizeof(wap_mmc_read_appmms_msg_part_rsp_struct));
response.result = JSR_RESULT_INSUFFICIENT_PERSISTENT_STORAGE;
mmi_jsr_read_appmms_msg_part_rsp(&response);
JsrCleanContext();
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_read_appmms_msg_part_rsp
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_READ_APPMMS_MSG_PART_RSP primitive to Java
* PARAMETERS
* response [?]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_read_appmms_msg_part_rsp(wap_mmc_read_appmms_msg_part_rsp_struct *response)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_read_appmms_msg_part_rsp_struct *myMsgPtr;
ilm_struct *ilm_ptr = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
myMsgPtr = (wap_mmc_read_appmms_msg_part_rsp_struct*)
OslConstructDataPtr(sizeof(wap_mmc_read_appmms_msg_part_rsp_struct));
myMsgPtr->result = response->result;
myMsgPtr->encoding_scheme = response->encoding_scheme;
/* Content-Type */
myMsgPtr->content_type_value = response->content_type_value;
myMsgPtr->content_type_len = response->content_type_len;
memcpy(myMsgPtr->content_type, response->content_type, 100);
/* Content-Id */
myMsgPtr->content_id_len = response->content_id_len;
memcpy(myMsgPtr->content_id, response->content_id, 100);
/* Content-Location */
myMsgPtr->content_location_len = response->content_location_len;
memcpy(myMsgPtr->content_location, response->content_location, 100);
/* Media object filepath */
myMsgPtr->filepath_len = response->filepath_len;
memcpy(myMsgPtr->filepath, response->filepath, 200);
ilm_ptr = allocate_ilm(MOD_WAP);
ilm_ptr->src_mod_id = MOD_WAP;
ilm_ptr->sap_id = J2ME_WAP_SAP;
ilm_ptr->dest_mod_id = MOD_JASYN;
ilm_ptr->local_para_ptr = (local_para_struct*) myMsgPtr;
ilm_ptr->msg_id = MSG_ID_WAP_MMC_READ_APPMMS_MSG_PART_RSP;
ilm_ptr->peer_buff_ptr = NULL;
msg_send_ext_queue(ilm_ptr);
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_cfg_appmms_appid_req
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_CFG_APPMMS_APPID_REQ primitive to Java
* PARAMETERS
* msg [?]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_cfg_appmms_appid_req(void *msg)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_cfg_appmms_appid_req_struct *Message;
JsrResult result;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
Message = (wap_mmc_cfg_appmms_appid_req_struct*) msg;
result = mmi_jsr_cfg_app_id(Message->app_id, Message->app_id_len, Message->op);
mmi_jsr_cfg_appmms_appid_rsp(result);
}
/*****************************************************************************
* FUNCTION
* mmi_jsr_cfg_appmms_appid_rsp
* DESCRIPTION
* Create a MSG_ID_WAP_MMC_CFG_APPMMS_APPID_RSP primitive to Java
* PARAMETERS
* result [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_jsr_cfg_appmms_appid_rsp(JsrResult result)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
wap_mmc_cfg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -