亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cmagt.cpp

?? 李剛 請趕快放開我的權限 我上載的源碼都是很精湛的,請查閱,qing請加我 li_xue_ming@msn.com必要的話可以和我在線溝通
?? CPP
字號:
#include <string.h>

#include "afsmbase.h"
#include "sys.h"
#include "omcevent.h"
#include "cmevent.h"
#include "p_oplog.h"

#include "fmessage.h"

/*====================================================================
函數名		CountStrNum
功能		:計算出字符串內子字符串的個數
算法實現	:(可選項)
引用全局變量:
輸入參數說明:要計算的字符串
返回值說明:子字符串的個數
====================================================================*/
WORD16 CountStrNum(PCHAR str,CHAR chDiv)
{
	WORD16 wCount=0;
	WORD16 i=0;
	
	//預處理字符串,刪除字符串兩邊的空格。
	str = Trim(str);
	
	while(str[i]!='\0')
	{
		if(str[i]==chDiv)
			wCount++;
		i++;
	}
	
	if(strlen(str)==0)
		return 0;
	else
		return ++wCount;
}
/*====================================================================
函數名		GetStrByIndex
功能		:獲取子字符串
算法實現	:(可選項)
引用全局變量:
輸入參數說明:子字符串位置、要計算的字符串、分隔符
返回值說明:子字符串
====================================================================*/
LPSTR GetStrByIndex(WORD16 wPos, LPSTR str, CHAR chDiv)
{	
	WORD16 wIndex;
	WORD16 subPos=0;
	
	for(wIndex = 0; wIndex < wPos-1; wIndex++, str++)
	{
		while((*str != chDiv) && (*str != '\0'))
			str++;
		if(*str == '\0')
			break;
	}
	
	if(*str != '\0')
	{	
		while((str[subPos]!=chDiv) && (str[subPos] != 0))
			subPos++;
		str[subPos]='\0';
	}
	
	return str;
}

/*====================================================================
函數名		: ParseFBody
功能		:解析命令行參數
算法實現	:(可選項)
引用全局變量:
輸入參數說明:
返回值說明  :TRUE/FALSE
====================================================================*/
BOOL ParseFBody(LPSTR strSource,LPSTR strAname,LPSTR strApara)
{
	BOOL bResult = TRUE;
	LPSTR lpTemp,pchDest;
	WORD16  wCount;
	WORD16	wLoop;
	WORD16  wStrLen;
	
	wCount = CountStrNum(strSource,',');
	
	CHAR sTempBuf[300];
	strcpy(sTempBuf,strSource);
	
	for(wLoop = 1;wLoop <= wCount;wLoop++)
	{
		pchDest=GetStrByIndex(wLoop,strSource,',');
		
		if(strstr(StrUpper(pchDest),(LPSTR)"ANAME=") != NULL)
		{
			//處理ANAME(應用進程名字)
			lpTemp = strpbrk(pchDest,(LPSTR)"=");
			++lpTemp;++lpTemp;
			strcpy(strAname,lpTemp);
			wStrLen=strlen(strAname);
			strAname[wStrLen-1]=NULL;
		}
		else if(strstr(StrUpper(pchDest),(LPSTR)"APARA=") != NULL)
		{
			//處理APARA(應用進程命令行參數)
			lpTemp = strpbrk(pchDest,(LPSTR)"=");			
			strcpy(strApara,(++lpTemp));
			
			//當參數值為"NULL",表明行參數為空(NULL)
			if(0 == strcmp(strApara,"NULL"))
			{
				strApara[0] = NULL;
			}
			else
			{
				strcpy(strApara,(++lpTemp));
				wStrLen=strlen(strApara);
				strApara[wStrLen-1]=NULL;
			}
		}
		else
		{
			//出錯信息
			PrintMsg((LPSTR)"CMAGT: F Body in F Message Attribute Error!\n");
			return FALSE;
		}
		strcpy(strSource,sTempBuf);
	}
	
	return bResult;
}

VOID GetUpdateRecord(LPBYTE lpFHead,
                     LPCSTR lpszInfo, 
                     BOOL bSucceed, 
                     TLogUpdateRecord &tLogUpdateRecord)
{
    //recordid
	CHAR LogRecordNo[F_RECORDID_LEN+1];
	memcpy( LogRecordNo,
            lpFHead + F_RECORDID_OFFSET, 
            F_RECORDID_LEN*sizeof(BYTE));
	LogRecordNo[F_RECORDID_LEN] = '\0';
	sscanf( LogRecordNo, (PCHAR)"%x", &tLogUpdateRecord.sdwRecordID );
	
    //EndTime
    tLogUpdateRecord.sdwEndTime = time(NULL);
    //DetailInfo
    if ( strlen( lpszInfo ) < MAX_LOGRECORD_DETAIL_LEN + 1 )
        strcpy( tLogUpdateRecord.achDetailInfo, lpszInfo );
    //Succeed
    tLogUpdateRecord.bSucceed = bSucceed;
}

class CCmAgt : public COperationLogFSM
{
public:
	CCmAgt();
	VOID onFsmStart(LPBYTE lpIn,LPBYTE lpOut,LPBYTE lpData);
	BOOL WriteUpdateLog(LPBYTE lpFHead,LPCSTR lpszInfo, BOOL bSucceed);
};


BOOL CCmAgt::WriteUpdateLog( LPBYTE lpFHead,LPCSTR lpszInfo, BOOL bSucceed)
{
    TLogUpdateRecord tLogUpdateRecord;
	
	GetUpdateRecord(lpFHead, lpszInfo, bSucceed, tLogUpdateRecord);
    BOOL bRet = UpdateLogRecord(&tLogUpdateRecord);
    if (! bRet )
    {
        Trace(1, (PCHAR)"UpdateLogRecord Error!");
    }
    return bRet;	
}

CCmAgt::CCmAgt()
{
    BEGIN_FSM_MAP()
        BEGIN_FSM_STATE( STA_IDLE )
		EVENT_MAP(EV_FSM_START,onFsmStart,STA_IDLE)
        END_FSM_STATE()
	END_FSM_MAP()
}

VOID CCmAgt::onFsmStart(LPBYTE lpIn,LPBYTE lpOut,LPBYTE lpData)
{
	
	//定義F接口使用的變量
	CFMessage cFMessage,cFAckMessage;				//全部F接口消息內容存放
	CHAR	  achAName[FBODY_ATTR_LENGTH];			//存放F消息體ANAME值
	CHAR	  achAPara[FBODY_ATTR_LENGTH];			//存放F消息體APARA值
	
	//其它變量定義
	CHAR    achMMIAck[BRDCAST_LENGTH];            
	CHAR	achFBody[FBODY_LENGTH];
	
	//操作日志的標識
	BOOL bRecordLog = TRUE;
	/**********************************************************************************/
	WORD32  dwExitCode=255;
	
	memset(achFBody,0x00,FBODY_LENGTH*sizeof(CHAR));
	memset(achMMIAck,0x00,BRDCAST_LENGTH*sizeof(CHAR));
	
	//獲取F接口消息	
    PCHAR   pchFMessage = GetUserCmdLine();
	
	if(pchFMessage == NULL)
	{
		PrintMsg((PCHAR)"CMAGT: Cannot direct startup,only for debug mode!\n");
		PrintMsg((PCHAR)"Useage: cmagt F-Messag \n");
		PrintMsg((PCHAR)"Sample: cmagt 00de0200CAGTCAGT001F00050000000000000000000000000000000000000000:ANAME=\"cmgetdb\",APARA=\"-all\"; \n");
		
		FsmExit(0);		
	}
	
	PrintMsg((PCHAR)"GetUserCmdLine:\n%s\n",pchFMessage);
	
	//賦值給CFMessage實例進行處理
	cFMessage = pchFMessage;
	
	//打印此F接口消息
	cFMessage.Print();

	/*
	
	CHAR   pchFMessage[300];
	strcpy(pchFMessage,
	"00de0200CAGTCAGT001F00050000000000000000000000000000000000000000:ANAME=\"cmgetdb\",APARA=\"-all\";");	
	
	*/	
		
	//獲取F接口消息體內容
	WORD32 dwLength=cFMessage.GetBodyLength();
	//pchFBody = new CHAR[dwLength-2];
	
	memcpy(achFBody,&pchFMessage[F_MESS_HEADER_LENGTH+1],
		(dwLength-1)*sizeof(CHAR));
	achFBody[dwLength-2] = NULL;
	
	PrintMsg((PCHAR)"Trim Head and Tail one element string:\n");	
	PrintMsg((PCHAR)"%s\n\n",achFBody);
	
	if(0 == strcmp(StrUpper(cFMessage.GetTransCommCode()),(PCHAR)"CAGT"))
	{
		PrintMsg((PCHAR)"Start Run CM Application...\n");
		
		//獲取屬性對應的屬性值(ANAME,APARA)
		if(TRUE == ParseFBody(achFBody,achAName,achAPara))
		{
			PrintMsg((PCHAR)"ANAME = %s,APARA = %s\n",achAName,achAPara);
			//啟動相應的CM應用進程
			if( FAILURE == PsCreate_Wait(achAName,achAPara,&dwExitCode) )
			{
				PrintMsg((PCHAR)"cmagt: Error!!! Can not create or wait for %s!\n",achAName);
				bRecordLog = FALSE;
			}
		}
		else
		{
			//F接口消息體中的屬性錯誤,FSM退出			
			PrintMsg((PCHAR)"cmagt: Error!!! F Message Body is not Correct!\n");
			bRecordLog = FALSE;
		}		
	}
	else
	{
		//F接口消息頭中的轉義碼錯誤,FSM退出
		PrintMsg((PCHAR)"cmagt: Error!!! F Head in F Message TransCmdCode Error!\n" );
		bRecordLog = FALSE;
	}
	
	PrintMsg((PCHAR)"cmagt: ExitCode = %d\n",dwExitCode);
	
	//發(fā)送F接口MMI應答消息給客戶端
	strcpy(achMMIAck,(PCHAR)cFMessage.GetHead());	
	
	//設置消息體內容
	strcat(achMMIAck,IntToHexString(dwExitCode,sizeof(WORD32)));
	
	cFAckMessage = achMMIAck;
	
	cFAckMessage.SetBroad(FALSE);
	cFAckMessage.Print();
	
    PrintMsg((PCHAR)"F ACK Message:%s\n",(PCHAR)cFAckMessage.GetMessage());
	PrintMsg((PCHAR)"Message No: %d\n",EV_CMD_CMAGT);
    
	FsmASend(EV_CMD_CMAGT,cFAckMessage.GetMessage(),cFAckMessage.GetLength()+1,(PCHAR)"SSF");
    
    FsmDelay(100);

	WriteUpdateLog(cFMessage.GetHead(),"配置代理進程啟動服務",bRecordLog);
	
    FsmExit(0);   
}



SWORD32 AppFsmStart()
{
	FID tFid;
	
	CCmAgt *pcSpawn = new CCmAgt;
	
	pcSpawn->FsmCreate(&tFid);
	pcSpawn->FsmRegister();
	
	return SUCCESS;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲丝袜另类动漫二区| 精品福利在线导航| bt欧美亚洲午夜电影天堂| 国产高清久久久久| 国产成人精品网址| 成人性色生活片| 成av人片一区二区| 97国产一区二区| 欧美伊人久久大香线蕉综合69 | 精品一区二区免费在线观看| 免费在线欧美视频| 麻豆精品国产91久久久久久| 狠狠色狠狠色综合系列| 国产精品一区二区无线| 成人成人成人在线视频| 日本丰满少妇一区二区三区| 欧美性大战xxxxx久久久| 8v天堂国产在线一区二区| 日韩精品一区二区三区在线播放| 精品国产精品网麻豆系列| 国产目拍亚洲精品99久久精品| 国产精品美女久久久久aⅴ| 国产精品久久久久一区| 亚洲最大成人网4388xx| 日本视频免费一区| 国产自产v一区二区三区c| 99视频精品在线| 欧美日韩在线三区| 精品国产一二三| 亚洲欧美日韩中文播放 | 国产精品一区二区久激情瑜伽| 国产高清一区日本| 欧美日韩精品一区视频| 久久综合久久综合久久综合| 欧美精品一区二区三区四区 | 日本一区二区免费在线观看视频| 中文字幕在线观看一区二区| 日韩电影在线观看网站| 99天天综合性| 欧美一区二区三区色| 中文字幕中文字幕一区| 蜜臀久久99精品久久久久久9| 国产成人在线看| 67194成人在线观看| 成人欧美一区二区三区视频网页| 日韩成人免费看| 日本韩国欧美一区二区三区| 精品国产91乱码一区二区三区| 亚洲欧美另类综合偷拍| 国产精品白丝jk白祙喷水网站| 91国在线观看| 亚洲欧洲日韩一区二区三区| 国内精品写真在线观看| 在线电影一区二区三区| 亚洲乱码中文字幕| 成人精品gif动图一区| 精品久久久久久无| 午夜欧美在线一二页| 色综合久久久网| 中文字幕不卡的av| 国产成人免费在线视频| 精品入口麻豆88视频| 丝袜美腿高跟呻吟高潮一区| 91色九色蝌蚪| 日韩美女啊v在线免费观看| 精品一区二区三区久久| 精品国产乱码久久久久久蜜臀 | 欧美性大战久久久久久久蜜臀| 色综合久久久久综合99| 欧美国产精品中文字幕| 国产精品一区二区三区四区| 精品少妇一区二区三区在线播放| 日韩亚洲国产中文字幕欧美| 久久久久亚洲蜜桃| 日韩成人av影视| 在线观看视频欧美| 亚洲乱码国产乱码精品精98午夜| av高清久久久| 中文字幕亚洲在| 成人a免费在线看| 国产精品电影一区二区三区| 91网址在线看| 亚洲男女毛片无遮挡| 欧美亚洲禁片免费| 午夜精品久久久久久| 欧美高清视频一二三区 | 欧美性猛交一区二区三区精品| ●精品国产综合乱码久久久久| 成人h精品动漫一区二区三区| 国产欧美一区二区精品婷婷| 顶级嫩模精品视频在线看| 欧美国产精品一区二区三区| aaa欧美色吧激情视频| 曰韩精品一区二区| 欧美日韩国产在线播放网站| 蜜芽一区二区三区| 国产午夜精品久久久久久久 | 欧美老人xxxx18| 蜜桃视频一区二区三区在线观看| 日韩欧美中文一区二区| 国产乱国产乱300精品| 亚洲欧洲日韩一区二区三区| 欧美中文一区二区三区| 久久国产精品99精品国产 | 亚洲另类在线视频| 69成人精品免费视频| 国产精品1区2区| 一区二区三区中文在线观看| 日韩一区二区三区av| 国产精品一二三| 亚洲国产精品久久人人爱| 久久一区二区三区国产精品| 99视频在线精品| 久久狠狠亚洲综合| 日韩伦理av电影| 精品国产1区二区| 色综合久久综合| 久久激情五月激情| 亚洲色图.com| 欧美xxxxxxxx| 在线国产亚洲欧美| 国产不卡在线一区| 亚洲成人你懂的| 国产精品色眯眯| 日韩免费高清av| 欧美亚洲日本国产| av爱爱亚洲一区| 国产精品一品视频| 久久综合综合久久综合| 亚洲美女在线一区| 国产视频在线观看一区二区三区 | 欧美精品视频www在线观看 | 成人精品一区二区三区中文字幕| 亚洲一区二区精品视频| 欧美激情在线观看视频免费| 91精品国产高清一区二区三区蜜臀| 99精品一区二区三区| 激情综合网天天干| 一区二区激情小说| 中文字幕人成不卡一区| 久久久久久麻豆| 欧美mv日韩mv国产| 日韩写真欧美这视频| 717成人午夜免费福利电影| 欧美日本一区二区三区四区| 91亚洲永久精品| 97久久久精品综合88久久| 国产精品影视在线观看| 久久精品国产在热久久| 热久久免费视频| 欧美va亚洲va| 国产美女视频一区| 精品一区二区三区视频| 另类小说综合欧美亚洲| 美女爽到高潮91| 日本在线不卡视频| 天天影视涩香欲综合网| 日韩中文字幕一区二区三区| 偷拍亚洲欧洲综合| 日韩国产成人精品| 男人的j进女人的j一区| 美女任你摸久久| 久久电影网电视剧免费观看| 久久国产三级精品| 国产乱人伦偷精品视频不卡| 懂色av中文字幕一区二区三区| 国产高清精品网站| 99久久精品一区二区| 91丨九色porny丨蝌蚪| 欧美自拍丝袜亚洲| 日韩视频永久免费| 中文av字幕一区| 亚洲美女屁股眼交| 天堂av在线一区| 国产激情视频一区二区在线观看 | 亚洲在线一区二区三区| 亚洲成人手机在线| 久久91精品久久久久久秒播| 国产精品一区二区免费不卡| 懂色一区二区三区免费观看| 在线亚洲一区观看| 欧美一级在线免费| 国产无人区一区二区三区| 亚洲天堂精品视频| 日韩av电影天堂| 国产99久久久国产精品| 欧美曰成人黄网| 亚洲精品在线观看视频| 成人在线一区二区三区| 欧美bbbbb| 99精品欧美一区二区三区小说 | 国产91精品精华液一区二区三区 | 白白色 亚洲乱淫| 欧美日韩在线一区二区| 久久久久久**毛片大全| 亚洲日本中文字幕区| 久久精品国产77777蜜臀| 色婷婷亚洲综合| 久久久影视传媒| 水蜜桃久久夜色精品一区的特点 |