⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wap_wlbif.c

📁 是一个手机功能的模拟程序
💻 C
字号:
/*
+-----------------------------------------------------------------------------
|  File     : wap_wlbif.c
+-----------------------------------------------------------------------------
|                 Copyright Condat AG 1999-2000, Berlin
|                 All rights reserved.
|
|                 This file is confidential and a trade secret of Condat AG
|                 The receipt of or possession of this file does not convey
|                 any rights to reproduce or disclose its contents or to
|                 manufacture, use, or sell anything it may describe, in
|                 whole, or in part, without the specific written consent of
|                 Condat AG.
+-----------------------------------------------------------------------------
|  Purpose : This Modul defines the interface between the WAP-Lib 
|            and the Frame/UDP Part of the entity
|  History  : 15/05/2003 - SPR#1983 - SH - Updated to latest from 1.6.3 version.
+----------------------------------------------------------------------------- 
*/

#ifndef WAP_WLBIF_C
#define WAP_WLBIF_C
#endif

#define ENTITY_WAP

/*==== INCLUDES ===================================================*/
#if defined (NEW_FRAME)

#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
#include "typedefs.h"
#include "pcm.h"
#include "pconst.cdg"
#include "mconst.cdg"
#include "message.h"
#include "ccdapi.h"
#include "vsi.h"
#include "custom.h"
#include "gsm.h"
#include "prim.h"
#include "cnf_wap.h"
#include "mon_wap.h"
#include "pei.h"
#include "tok.h"
#include "dti.h"      /* functionality of the dti library */

#else

#include <string.h>
#include "stddefs.h"
#include "pconst.cdg"
#include "message.h"
#include "ccdapi.h"
#include "custom.h"
#include "gsm.h"
#include "cnf_wap.h"
#include "mon_wap.h"
#include "prim.h"
#include "vsi.h"
#include "pei.h"
#include "tok.h"

#endif

#include "wap.h"
#include "Cus_wap.h"
#include "capiclnt.h"
#include "aapiclnt.h"
#include "wap_types.h"
#include "wap_examples.h"

#include "mmiutilapi.h"

/*==== CONST =======================================================*/

/*==== TYPES =======================================================*/

/*==== VAR EXPORT ==================================================*/

/*==== VAR LOCAL ===================================================*/

/*==== FUNCTIONS ===================================================*/


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : wap_lib_bind_callback|
+--------------------------------------------------------------------+
 
  PURPOSE : bind_cnf callback, indicates a (un)sucessfull bind 
*/
GLOBAL void wap_lib_bind_callback(
                                  UBYTE objectId,
								  UBYTE channelId,
                                  UINT16 port,
                                  BYTE errMsg
                                 )
{
	TRACE_EVENT("wap_lib_bind_callback");




	if (!errMsg)
	{
		/*SPR#2138 - SH */
		CLNTc_setDCHIntConfig(objectId, channelId, configONLINE, TRUE);

		CLNTc_setupConnectionDone(objectId,channelId,TRUE);

		wap_lib_run_aus_callback();
	}
	

}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : wap_lib_closeport_callback |
+--------------------------------------------------------------------+
 
  PURPOSE : close_port_cnf callback, indicates the successfull shutdown 
            of an UDP port 
*/
GLOBAL void wap_lib_closeport_callback (UBYTE objectId,UBYTE channel) 
{

  /*XXX XXX*/  
}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : wap_lib_run_aus_callback|
+--------------------------------------------------------------------+
 
  PURPOSE :  AUS run-loop callback
 */
GLOBAL void wap_lib_run_aus_callback(void) 
{
  /*XXX XXX*/ 

  while(CLNTc_wantsToRun()&&(wap_data->aus_runnable))
  {
    CLNTc_run();
  }
}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : wap_lib_error_callback|
+--------------------------------------------------------------------+
 
  PURPOSE :  AUS error callback
 */
GLOBAL void wap_lib_error_callback (
                                     UCHAR objectId,
                                     SHORT errNo,
                                     UCHAR errorType
                                   ) 
{
  /*XXX XXX*/
}




/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_terminated    |
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_terminated(void) 
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_terminated");
#endif
}

GLOBAL void CLNTa_closeConnection( 
                                   UCHAR objectId, 
                                   UCHAR channelID 
                                 )
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_closeConnection");
	{
		char temp[60];
		sprintf(temp,"objectId %d channel Id %d",(int)objectId,(int)channelID);
		TRACE_EVENT(temp);
	}
#endif
}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_setupConnection|
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_setupConnection( 
                                   UCHAR objectId, 
                                   UCHAR channelID 
                                 )
{
	T_WAP_MMI_CONNECT_REQ parameter;

#ifdef TRACE_WAP_AUS_CLNT

	TRACE_EVENT("CLNTa_setupConnection");

	{
		char temp[60];
		sprintf(temp,"objectId %d channel Id %d",(int)objectId,(int)channelID);
		TRACE_EVENT(temp);
	}

#endif

	parameter.object_id = objectId;
	parameter.channel = channelID;




	
	W_WAP_MMI_CONNECT_REQ(&parameter);
}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_changedChannel|
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_changedChannel(
                                  UCHAR objectId, 
                                  UCHAR channelId, 
                                  UCHAR isWTLSchannel
                                )
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_changedChannel");

	{
		char temp[60];
		sprintf(temp,"objectId %d channel Id %d",(int)objectId,(int)channelId);
		TRACE_EVENT(temp);
	}
#endif
}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_requestConnection|
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_requestConnection ( UCHAR objectId )
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_requestConnection");
#endif
}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_nonSupportedScheme|
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_nonSupportedScheme ( 
                                       UCHAR objectId, 
                                       const CHAR *URL
                                     )
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_nonSupportedScheme");
#endif
}



/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_acknowledgePostContent|
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_acknowledgePostContent (UCHAR urlID)
{

#ifdef MMS_WAP_ENABLED
	T_WAP_MMI_ACKPOSTCONTENT_REQ parameter;
	parameter.urlID = urlID;

	W_WAP_MMI_ACKPOSTCONTENT_REQ(&parameter);
#endif
}

#ifdef MMS_MESSAGE_SAR_USED
static int g_codememalloc = 0;
#define MMS_new(ptr, size)  		MI_ALLOC(ptr, size,g_codememalloc)
#define MMS_free(ptr,size)             MI_FREE(ptr, g_codememalloc);
#endif
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_content       |
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_content ( 
                            UCHAR urlID, 
                            const CHAR *data, 
                            USHORT length,
                            BOOL moreData, 
                            const CHAR *contentType, 
                            UINT32 totalSize, 
                            SHORT errorNo
                          )
{
#ifdef MMS_WAP_ENABLED
	T_WAP_MMI_CONTENT_REQ parameter;
#endif

#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_content");
#endif

#ifdef MMS_WAP_ENABLED

	{
		T_WAP_MMI_CONTENT_REQ parameter;
		if(data == 0)
			length = 0;
		memset(&parameter,0 ,sizeof(T_WAP_MMI_CONTENT_REQ));
		parameter.urlID = urlID;

		parameter.moreData = moreData;
		parameter.contentType = (char*)contentType;
		if(parameter.contentType)
			parameter.contentType_length = strlen(contentType);
		parameter.totalSize = totalSize;
		parameter.errorNo = errorNo; 

#ifdef MMS_MESSAGE_SAR_USED
		
		if(length > MMS_MESSAGE_GROUP_SIZE)
		{

			MMS_new(parameter.data2 ,length);
			if(g_codememalloc == EC_MMIMEM_OK)
			{
				memcpy(parameter.data2 ,data, length);
			}
			parameter.data_length2 = length;
		}
		else
		{
			parameter.data = (char*)data;
			parameter.data_length = length;
		}
#else
		parameter.data = (char*)data;
		parameter.data_length = length;
#endif

		W_WAP_MMI_CONTENT_REQ(&parameter);
	}

#endif
}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_getFile       |
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_getFile (
                            UCHAR fileId, 
                            const CHAR *URL
                          )
{
	UBYTE 	pageIndex;
	/* USHORT fileIndex; */
	char	*file;
	USHORT length;

#ifdef TRACE_WAP_AUS_CLNT
	char	test_string[20];
	TRACE_EVENT("CLNTa_getFile");
#endif

	pageIndex = 10*(*(URL+8)-'0')+(*(URL+9)-'0');  // Get two digit number from string

#ifdef TRACE_WAP_AUS_CLNT
	sprintf(test_string, "Page: %d", pageIndex);
	TRACE_EVENT(test_string);
#endif

	file = (char *)WAP_loadPage(pageIndex);

	if (file==NULL)								// File not found
		CLNTc_file(fileId, NULL, 0, NULL);
	
	length = *file+256*(*(file+1));
	

	if (*(URL+14) == 's')		// wmls file
		CLNTc_file(fileId, file+2, (UINT16) length, "application/vnd.wap.wmlscriptc");
	else
		CLNTc_file(fileId, file+2, (UINT16) length, "application/vnd.wap.wmlc");
	

	return;
}


/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444)             MODULE  : WAP_WLBIF           |
| STATE   : code                       ROUTINE : CLNTa_callFunction  |
+--------------------------------------------------------------------+
*/ 
GLOBAL void CLNTa_callFunction (
                                UCHAR functionId, 
                                const CHAR *device, 
                                const CHAR *function, 
                                const CHAR *attributes
                               )
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_callFunction");
#endif
}





VOID    CLNTa_resultDecodeProvisioning (const DATATABSTRUCT *dataTab, UINT16 dataTabLen, 
										const WCHAR *strTab, UINT16 strTabLen, UINT16 iResult)
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_resultDecodeProvisioning");
#endif
}

VOID    CLNTa_resultDecodeE2Esecurity (UINT8 objectID, UINT8 id, UINT32 expires, const DATATABSTRUCT *dataTab, UINT16 dataTabLen, 
									   const WCHAR *strTab, UINT16 strTabLen, UINT16 iResult)
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_resultDecodeE2Esecurity");
#endif
}


VOID	CLNTa_getProvSharedSecret(UINT16 iListID, UINT16 SEC)
{
#ifdef TRACE_WAP_AUS_CLNT
	TRACE_EVENT("CLNTa_getProvSharedSecret");
#endif
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -