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

📄 au_cmd.cpp

📁 map协议源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		{
			par1 = atol(ppArgv[1]);
			par2 = atol(ppArgv[2]);
			par3 = atol(ppArgv[3]);
		}
		break;

	case 3:
		{
			par1 = atol(ppArgv[1]);
			par2 = atol(ppArgv[2]);
		}
		break;

	case 2:
		{
			par1 = atol(ppArgv[1]);
		}
		break;

	case 1:
		break;

	default:
		XOS_CliExtPrintf(pCliEnv, "	参数错误,请重试!\r\n");
		break;
	}
    gPar.oprType = par1;
    gPar.number = par2;
	gPar.intvl = par3;
    gPar.nsec = par4;

    if(ROK != (rVal=SGetMsg(cliUuPst.region, cliUuPst.pool, &mBuf)))
    {
        RETVOID;
    }

    cliUuPst.event = AU_EVTSNDOPR;

	SPstTsk(&cliUuPst, mBuf);
	
    RETVOID;
}

void auSetPfmEnb(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
    int par;

	par = atol(ppArgv[1]);
	
    if (par < 0 )
      return;

    pfmTstFlag = par?1:0;

    XOS_CliExtPrintf(pCliEnv, (char*)"set performance test flag: %s\r\n", par?"enable":"disable");
    return;
}

void auGetPfmRst(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
    int diffLt;
    char allTime[14];
    int sec,minute,hour;
    double succRat;
    int freq;
    
    diffLt = (int)difftime(endLt, startLt);

    sec = diffLt % 60;
    minute = (diffLt/60)%60;
    hour = (diffLt/3600);

    freq = smAuSts.lAuOpenReq/diffLt;

    memset(allTime, 0, 14);
    sprintf(allTime, "%2d:%2d:%ds",hour,minute,sec);

    succRat=((double)smAuSts.lAuCloseInd/smAuSts.lAuOpenReq)*100;

    XOS_CliExtPrintf(pCliEnv, (char*)"==========================================================================\r\n");
    XOS_CliExtPrintf(pCliEnv, (char*)"Get Performance Test Result:\r\n");
    XOS_CliExtPrintf(pCliEnv, (char*)"==========================================================================\r\n");
    XOS_CliExtPrintf(pCliEnv, (char*)"Time          |Total Calls   |Accept Calls  |succ Rate     |Freq(per/sec) |\r\n");
    XOS_CliExtPrintf(pCliEnv, (char*)"%-14s|%-14d|%-14d|%-13.4f%%|%-14ld|\r\n", allTime, smAuSts.lAuOpenReq, smAuSts.lAuCloseInd, succRat,freq);
    XOS_CliExtPrintf(pCliEnv, (char*)"==========================================================================\r\n");
    return;
}


Void auSetAddr(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
    U8 par1[24], par3[24];
    int par2, par4;

	strcpy((char*)par1, ppArgv[1]);
	strcpy((char*)par3, ppArgv[3]);
	par2 = atol(ppArgv[2]);
	par4 = atol(ppArgv[4]);

    if (!strlen((char *)par1) || !strlen((char *)par3) ||
        !par2 || !par4)
    {
        GlobalAddr(pCliEnv);
        return;
    }

    strToGtAddr(par1, &auAddr.srcGt);
    auAddr.srcSsn = par2;
    strToGtAddr(par3, &auAddr.dstGt);
    auAddr.dstSsn = par4;
    
    GlobalAddr(pCliEnv);
}

void auCloseFlag(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
    int par;

	par = atol(ppArgv[1]);
    if (par < 0 )
      return;

    auCloseDialog = par?1:0;

    XOS_CliExtPrintf(pCliEnv, (char*)"AU send closeReq Flag: %s\r\n", par?"enable":"disable");
    return;
}

void auSetTrc(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
    int par;

	par = atol(ppArgv[1]);
    if (par < 0 )
      return;

	auAccTraceFlag = par;
    XOS_CliExtPrintf(pCliEnv, (char*)"AU Trace Flag: %s\r\n", par?"enable":"disable");

	return;
}

#ifdef ANSI
PUBLIC Void auMaPstInit
(
Pst *pst
)
#else
PUBLIC Void auMaPstInit(pst)
Pst *pst;
#endif
{
	pst->dstEnt = ENTMA;
	pst->dstInst = MA_INST_0;
	pst->dstProcId = SFndProcId();

	pst->pool = DFLT_POOL;
	pst->region = DFLT_REGION;

	pst->route = RTESPEC;
#ifdef LCAULIMAT	
	pst->selector = AU_SEL_LC;
#else
	pst->selector = AU_SEL_TC;
#endif

	pst->srcEnt = ENTAU;
	pst->srcInst = AU_INST_0;
	pst->srcProcId = SFndProcId();

	RETVOID;
}

void auCloseDlgCmd(void)
{
    Dialog      *curDlg;
    int sendnum;
    DlgId dlgId[256];
    MaDlgId suDlgId, suDlgId_loc;

    if (gCloseDlg.num) /* delete special number */
    {
        suDlgId = gCloseDlg.pos;
        sendnum = 0;
        do
        {
            suDlgId = (suDlgId)%MAX_AU_DLG_ID;
#ifdef DAU
            suDlgId_loc=suDlgId | (dmGetLocalNonCritRset()<<24);
#else
            suDlgId_loc=suDlgId;
#endif
            curDlg = dlgQueue->dlgFind(suDlgId_loc, 0);
            suDlgId++;
            if (curDlg == NULLP)
            {
                continue;
            }
            dlgId[sendnum].suDlgId=curDlg->auDlgIdGet();
            dlgId[sendnum].spDlgId=curDlg->maDlgIdGet();
            dlgQueue->dlgDelete(curDlg->auDlgIdGet());
            printf("Delete Activate Dialog!suDlgId=%ld, maDlgId=%ld\r\n",
                 dlgId[sendnum].suDlgId, dlgId[sendnum].spDlgId);
            sendnum++;
        }while (sendnum < gCloseDlg.num);
        
        printf("\r\nClose The %d number DlgId End!\r\n", sendnum);
    }
    else /* delete all */
    {
        for (suDlgId=1; suDlgId<= MAX_AU_DLG_ID; suDlgId++)
        {
#ifdef DAU
            suDlgId_loc=suDlgId | (dmGetLocalNonCritRset()<<24);
#else
            suDlgId_loc=suDlgId;
#endif
            curDlg = dlgQueue->dlgFind(suDlgId_loc, 0);
            if (curDlg == NULLP)
            {
                continue;
            }
            dlgQueue->dlgDelete(curDlg->auDlgIdGet());
            printf("Delete Activate Dialog!suDlgId=%ld, maDlgId=%ld\r\n",
                 curDlg->auDlgIdGet(), curDlg->maDlgIdGet());
        }
        printf( "Close All DlgId End!\r\n");
    }

}

void auCloseDlg(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
    U32 par1 = 0; /* the number of dialog to close: 0 - close all or  [1, 255] */
	U32 par2 = 1; /* special pos you want to delete in the SAP CB  */

	Buffer *mBuf = NULLP;
	S16     rVal = 0;

	switch(siArgc)
		{
			case 3:
				{
					par1 = (int)atol(ppArgv[1]);
					par2 = (int)atol(ppArgv[2]);
				}
			break;

			case 2:
				{
					par1 = (int)atol(ppArgv[1]);
				}
			break;

			case 1:
				break;

			default:
				XOS_CliExtPrintf(pCliEnv, "the number of argument is error, please try again.\r\n");
				break;
		}
	
    if (par1 < 0 || par1 > 255)
    {
        XOS_CliExtPrintf(pCliEnv, (char*)"error input delete number[%d](0 <= value <= 255) .\r\n", par1);
        return;
    }
    if (par2 < 1 || par2 > MAX_AU_DLG_ID)
    {
        XOS_CliExtPrintf(pCliEnv, (char*)"error input delete number[%d] (1 <= value <= %d) .\r\n", par2, MAX_AU_DLG_ID);
        return;
    }

    if (par1 >= dlgQueue->actDlgNumGet())
    {
        XOS_CliExtPrintf(pCliEnv, (char*)"input number exceed activate dialog number.Delete All Dialog.\r\n");
        par1=0;
    }
        
    gCloseDlg.num=par1;
    gCloseDlg.pos=par2;

	if (ROK != (rVal = SGetMsg(cliUuPst.region, cliUuPst.pool, &mBuf)))
		{
			RETVOID;
		}
	cliUuPst.event = AU_EVTCLSDLG;

	SPstTsk(&cliUuPst, mBuf);
	
    RETVOID;
}

void auDlgView(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
    MaDlgId suDlgId, suDlgId_loc;
    Dialog *curDlg;
    int totnum = 0;

    XOS_CliExtPrintf(pCliEnv, (char *)"%10s%10s%10s\r\n",
        "auDlgId", "maDlgId", "sapId");
    for (suDlgId=1; suDlgId<=MAX_AU_DLG_ID; suDlgId++)
    {
#ifdef DAU
        suDlgId_loc=suDlgId | (dmGetLocalNonCritRset()<<24);
#else
        suDlgId_loc=suDlgId;
#endif
        curDlg = dlgQueue->dlgFind(suDlgId_loc, 0);
        if (curDlg == NULL)
        {
            continue;
        }
        XOS_CliExtPrintf(pCliEnv, (char*)"%10ld%10ld%10ld\r\n",
            curDlg->auDlgIdGet(), curDlg->maDlgIdGet(), curDlg->spIdGet());
        totnum++;
    }
    XOS_CliExtPrintf(pCliEnv, (char *)"total Activate Dialog number %d.\r\n", totnum);

} 

⌨️ 快捷键说明

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