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

📄 cnapstag.cpp

📁 液晶电视完整代码可实现人机界面
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/***文件头描述**/#include <string.h>#include "cnapstag.hpp"#include "mmlpubdef.hpp"#include "BepsSend.h"#include "libcore.h"#include "SvrDef.hpp"/****************************************************************************函数说明:TParameter的构造函数*输入参数:无*           *输出参数:无*          *          *返回值  :无*     *作    者:zhanglongping *日    期: 2006-10-15****************************************************************************/TParameter::TParameter(){	paraValueLen = 0;	paraValue    = NULL;	paraName     = NULL;}/****************************************************************************函数说明:TParameter的析构函数*输入参数:无*           *输出参数:无*          *          *返回值  :无*     *作    者:zhanglongping *日    期: 2006-10-15****************************************************************************/TParameter::~TParameter(){	if(NULL != paraName)	{		delete [] paraName;		paraName = NULL;	}	if(NULL != paraValue)	{		delete [] paraValue;		paraValue = NULL;	}	paraValueLen = 0;}/****************************************************************************函数说明:TParameter的打印函数,打印其成员值*输入参数:无*           *输出参数:无*          *          *返回值  :TBool*          TRUE  处理成功*     FALSE 处理失败*作    者:zhanglongping *日    期: 2006-10-15****************************************************************************/BOOL TParameter::printParaInfo(){	//PrintFormat(PROMPT, "Enter TParameter::printParaInfo\n");		if( NULL == paraName || NULL == paraValue)	{		filelog(CIS_SRV_LOG, "Error:parameter information invalid in file=[%s]"			"at line=[%d]\n", __FILE__, __LINE__);		return FALSE;	}	if( paraValueLen > MAX_LEN_PARA_VALUE || paraValueLen <=0)	{		filelog(CIS_SRV_LOG, "Error:parameter length invalid in file=[%s]"			"at line=[%d]\n", __FILE__, __LINE__);		return FALSE;	}	filelog(CIS_SRV_LOG, "ParaName=[%s],ParaValue=[%d][%s]\n",			paraName, paraValueLen, paraValue);	//PrintFormat(PROMPT, "Exit TParameter::printParaInfo");	return TRUE;}/****************************************************************************函数说明:TCnapsTagMML的构造函数*输入参数:无*           *输出参数:无*          *          *返回值  :无*     *作    者:zhanglongping *日    期: 2006-10-15****************************************************************************/TCnapsTagMML::TCnapsTagMML(){	mmlHeadLen = 0;	mmlServiceHeadLen = 0;	mmlContentLen = 0;	mmlTailLen = 0;	mmlHead = NULL;	mmlServiceHead = NULL;	mmlContent = NULL;	mmlTail = NULL;	mmlInfoLen = 0;	mmlInfo = NULL;	mmlHeadParaNum = 0;	mmlServiceHeadParaNum = 0;	mmlContentParaNum = 0;	mmlTailParaNum = 0;	memset(mmlHeadParaList, 0, sizeof(mmlHeadParaList));	memset(mmlServiceHeadParaList, 0, sizeof(mmlServiceHeadParaList));	memset(mmlContentParaList, 0, sizeof(mmlContentParaList));	memset(mmlTailParaList, 0, sizeof(mmlTailParaList));}/****************************************************************************函数说明:TCnapsTagMML的析构函数*输入参数:无*           *输出参数:无*          *          *返回值  :无*     *作    者:zhanglongping *日    期: 2006-10-15****************************************************************************/TCnapsTagMML::~TCnapsTagMML(){#if 0	if(NULL != mmlInfo)	{		delete [] mmlInfo;	}#endif	if(NULL != mmlHead)	{		delete [] mmlHead;	}	if(NULL != mmlServiceHead)	{		delete [] mmlServiceHead;	}	if(NULL != mmlContent)	{		delete [] mmlContent;	}	if(NULL != mmlTail)	{		delete [] mmlTail;	}}/****************************************************************************函数说明:TCnapsTagMML的打印函数,打印其成员值*输入参数:无*           *输出参数:无*          *          *返回值  :TBool*          TRUE  处理成功*     FALSE 处理失败*作    者:zhanglongping *日    期: 2006-10-15****************************************************************************/BOOL TCnapsTagMML::printMmlcmd(){	filelog(CIS_SRV_LOG, "Enter TCnapsTagMML::printMmlcmd\n");	if(NULL == mmlInfo || mmlInfoLen <= 0 || mmlInfoLen > MAX_LEN_MML_INFO)	{		filelog(CIS_SRV_LOG, "Error:mmlInfo or mmlInfoLen=[%d] invalid in "			"file=[%s] at line=[%d]\n", mmlInfoLen, __FILE__, __LINE__);		return FALSE;	}	if(NULL == mmlContent || mmlContentLen <= 0 		|| mmlContentLen > MAX_LEN_MML_INFO)	{		filelog(CIS_SRV_LOG, "Error:mmlContent or mmlContentLen=[%d] invalid "			"in file=[%s] at line=[%d]\n", mmlContentLen, __FILE__, __LINE__);		return FALSE;	}	filelog(CIS_SRV_LOG, "The MML information as follow\n");	filelog(CIS_SRV_LOG, "mmlInfo=[%d][%s]\n", mmlInfoLen,mmlInfo);	filelog(CIS_SRV_LOG, "mmlHeadParaNum=[%d], mmlServiceHeadParaNum=[%d]\n",		mmlHeadParaNum, mmlServiceHeadParaNum);	filelog(CIS_SRV_LOG, "mmlContentParaNum=[%d], mmlTailParaNum=[%d]\n",		mmlContentParaNum, mmlTailParaNum);		if(NULL != mmlHead && mmlHeadLen > 0)	{		filelog(CIS_SRV_LOG, "mmlHead=[%d][%s]\n", mmlHeadLen, mmlHead);				for(int i=0; i<mmlHeadParaNum; i++)		{			mmlHeadParaList[i].printParaInfo();		}	}		if(NULL!= mmlServiceHead && mmlServiceHeadLen > 0)	{		filelog(CIS_SRV_LOG, "mmlServiceHead=[%d][%s]\n", 			mmlServiceHeadLen, mmlServiceHead);				for(int i=0; i<mmlServiceHeadParaNum; i++)		{			mmlServiceHeadParaList[i].printParaInfo();		}	}	if(NULL != mmlContent && mmlContentLen >0)	{		filelog(CIS_SRV_LOG, "mmlContent=[%d][%s]\n", mmlContentLen, mmlContent);		for(int i=0; i<mmlContentParaNum; i++)		{			mmlContentParaList[i].printParaInfo();		}	}		if(NULL != mmlTail && mmlTailLen > 0)	{		filelog(CIS_SRV_LOG, "mmlTail=[%d][%s]\n", mmlTailLen, mmlTail);		for(int i=0; i<mmlTailParaNum; i++)		{			mmlTailParaList[i].printParaInfo();		}	}		filelog(CIS_SRV_LOG, "Exit TCnapsTagMML::printMmlcmd\n");	return TRUE;}/****************************************************************************函数说明:TCnapsTagMML的分析函数,根据其人机接口信息分析出报文头,报文业务头*报文体,报文尾*输入参数:无*           *输出参数:无*          *          *返回值  :TBool*          TRUE  处理成功*     FALSE 处理失败*作    者:zhanglongping *日    期: 2006-10-15****************************************************************************/BOOL TCnapsTagMML::parserMmlcmd(){	printf("Enter TCnapsTagMML::parserMmlcmd\n");	//filelog(CIS_SRV_LOG, "Enter TCnapsTagMML::parserMmlcmd");	//printf("Enter TCnapsTagMML::parserMmlcmd 1\n");	if(NULL == mmlInfo || mmlInfoLen <= 0 || mmlInfoLen > MAX_LEN_MML_INFO)	{		filelog(CIS_SRV_LOG, "Error:mmlInfo or mmlInfoLen=[%d] invalid in "			"file=[%s] at line=[%d]", mmlInfoLen, __FILE__, __LINE__);		return FALSE;	}	//PrintFormat(PROMPT, "mmlInfo=[%d][%s]\n", strlen(mmlInfo), mmlInfo);		char *sFindStr = NULL;	char *sFinsh = NULL;	long iContentLen = 0;	BOOL bRet = TRUE;	char *mmlInfoHead = mmlInfo;	//分析出报文头	printf("Enter TCnapsTagMML::parserMmlcmd MML_HEAD\n");	if((sFindStr = strstr(mmlInfo, MML_HEAD)) != NULL)	{   printf("strstr(mmlInfo, MML_HEAD)");		filelog(CIS_SRV_LOG, "Parser message head\n      ");		//PrintFormat(PROMPT, "mmlInfo=[%d][%s]\n", strlen(mmlInfo), mmlInfo);		if((sFinsh = strstr(mmlInfo, FLAG_FINSH)) != NULL)		{    printf("strstr(mmlInfo, FLAG_FINSH)    ");			//去掉报文类别标识及结束标志			sFindStr += MAX_LEN_TAG;	//add 2 mod by lics			sFinsh -= 1;			iContentLen = sFinsh - sFindStr;			if(iContentLen <= 0 || iContentLen > MAX_LEN_MML_HEAD)			{   printf("iContentLen <= 0 || iContentLen > MAX_LEN_MML_HEAD   ");				filelog(CIS_SRV_LOG, "Error:mmlHeadLen=[%d] invalid in file="					"[%s] at line=[%d]\n", iContentLen, __FILE__, __LINE__);				return FALSE;			}						mmlHeadLen = iContentLen;			mmlHead = new char[mmlHeadLen+2];			if(NULL == mmlHead)			{   printf("NULL == mmlHead   ");				filelog(CIS_SRV_LOG, "Error:allocate memory fail in file=[%s]"					"at line=[%d]\n", __FILE__, __LINE__);				return FALSE;			}			memset(mmlHead, 0, mmlHeadLen+2);			memcpy(mmlHead, sFindStr, mmlHeadLen);			strcat(mmlHead, FLAG_COLON);			printf("报文头mmlHead:%s", mmlHead);			iContentLen = 0;			sFindStr = NULL;			mmlInfo = sFinsh+2;			sFinsh = NULL;						bRet = parserContent(mmlHead, mmlHeadParaList, &mmlHeadParaNum);			if(FALSE == bRet)			{				return bRet;			}		}		else		{			filelog(CIS_SRV_LOG, "Error:mmlInfo=[%s] not mml head finsh flag "				"in file=[%s] at line=[%d]\n", mmlInfo, __FILE__, __LINE__);			return FALSE;		}	}	//分析出报文中的业务头	printf("Enter TCnapsTagMML::parserMmlcmd MML_SRV_HEAD\n");	/*if((sFindStr = strstr(mmlInfo, MML_SRV_HEAD)) != NULL)	{		filelog(CIS_SRV_LOG, "Parser message service head\n");		//PrintFormat(PROMPT, "mmlInfo=[%d][%s]\n", strlen(mmlInfo), mmlInfo);		if((sFinsh = strstr(mmlInfo, FLAG_FINSH)) != NULL)		{			//去掉报文类别标识及结束标志			sFindStr += MAX_LEN_FLAG_MSG;			sFinsh -= 1;			iContentLen = sFinsh - sFindStr;			if(iContentLen <= 0 || iContentLen > MAX_LEN_MML_HEAD)			{				filelog(CIS_SRV_LOG, "Error:mmlServiceHeadLen=[%d] invalid in "					"file=[%s] at line=[%d]\n", iContentLen, __FILE__, __LINE__);				return FALSE;			}			mmlServiceHeadLen = iContentLen;			mmlServiceHead = new char[mmlServiceHeadLen+2];			if(NULL == mmlServiceHead)			{				filelog(CIS_SRV_LOG, "Error:allocate memory fail in file=[%s]"					"at line=[%d]\n", __FILE__, __LINE__);				return FALSE;			}			memset(mmlServiceHead, 0, mmlServiceHeadLen+2);			memcpy(mmlServiceHead, sFindStr, mmlServiceHeadLen);			strcat(mmlServiceHead, FLAG_COLON);			//printf("mmlServiceHead:%s\n", mmlServiceHead);						iContentLen = 0;			sFindStr = NULL;			mmlInfo = sFinsh+2;			sFinsh = NULL;			bRet = parserContent(mmlServiceHead, mmlServiceHeadParaList,				&mmlServiceHeadParaNum);			if(FALSE == bRet)			{				return bRet;			}		}		else		{			filelog(CIS_SRV_LOG, "Error:mmlInfo not mml service head "				"finsh: flag in file=[%s] at line=[%d]\n", __FILE__, __LINE__);			return FALSE;		}	}*/	//分析出报文体	if((sFindStr = strstr(mmlInfo, MML_CONTENT)) != NULL)	{	    //filelog(CIS_SRV_LOG, "Parser message content\n");		//PrintFormat(PROMPT, "mmlInfo=[%d][%s]\n", strlen(mmlInfo), mmlInfo);		if((sFinsh = strstr(mmlInfo, FLAG_FINSH)) != NULL)		{			//去掉报文类别标识及结束标志			sFindStr += MAX_LEN_TAG;			sFinsh -= 1;			iContentLen = sFinsh - sFindStr;			if(iContentLen <= 0 || iContentLen > MAX_LEN_MML_CONT)			{				filelog(CIS_SRV_LOG, "Error:mmlContentLen=[%d] invalid in file"					"=[%s] at line=[%d]\n", iContentLen, __FILE__, __LINE__);			}			mmlContentLen = iContentLen;			mmlContent = new char[mmlContentLen+2];			if(NULL == mmlContent)			{				filelog(CIS_SRV_LOG, "Error:allocate memory fail in file=[%s]"					"at line=[%d]\n", __FILE__, __LINE__);				return FALSE;			}			memset(mmlContent, 0, mmlContentLen+2);			memcpy(mmlContent, sFindStr, mmlContentLen);			strcat(mmlContent, FLAG_COLON);			//printf("mmlContent:%s\n", mmlContent);			iContentLen = 0;			sFindStr = NULL;			mmlInfo = sFinsh+2;			sFinsh = NULL;			bRet = parserContent(mmlContent, mmlContentParaList, 				&mmlContentParaNum);			if(FALSE == bRet)			{				return bRet;			}		}		else		{			filelog(CIS_SRV_LOG, "Error:mmlInfo not mml content finsh flag "				"in file=[%s] at line=[%d]\n", __FILE__, __LINE__);			return FALSE;		}	}	//else	//{	//	filelog(CIS_SRV_LOG, "Error:mmlInfo not mml content in file=[%s] "	//		"at line=[%d]\n",  __FILE__, __LINE__);	//	return FALSE;	//}	//分析出报尾	if((sFindStr = strstr(mmlInfo, MML_TAIL)) != NULL)	{		filelog(CIS_SRV_LOG, "Parser message tail\n");		//PrintFormat(PROMPT, "mmlInfo=[%d][%s]\n", strlen(mmlInfo), mmlInfo);		if((sFinsh = strstr(mmlInfo, FLAG_FINSH)) != NULL)		{			//去掉报文类别标识及结束标志			sFindStr += MAX_LEN_FLAG_MSG;			sFinsh -= 1;			iContentLen = sFinsh - sFindStr;			if(iContentLen <=0 || iContentLen > MAX_LEN_MML_TAIL)			{				filelog(CIS_SRV_LOG, "Error:mmlTailLen=[%d] invalid in file="					"[%s] at line=[%d]\n", iContentLen, __FILE__, __LINE__);				return FALSE;			}			mmlTailLen = iContentLen;			mmlTail = new char[mmlTailLen+2];			if(NULL == mmlTail)			{				filelog(CIS_SRV_LOG, "Error:allocate memory fail in file=[%s]"					"at line=[%d]\n", __FILE__, __LINE__);				return FALSE;			}			memset(mmlTail, 0, mmlTailLen+2);

⌨️ 快捷键说明

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