Exemple #1
0
bool StatFormBase::ConnectGuardMain()
{
	DetachShm ();
	if (AttachShm (0, (void **)&pInfoHead) >= 0) 
	{
		pProcInfoHead = &pInfoHead->ProcInfo;
	} 
	else 
	{
		return false;
	}
	return true;
}
Exemple #2
0
//连接共享内存
int Channel::connectGuardMain()
{
	DetachShm ();
	if(AttachShm (0, (void **)&m_pInfoHead) >= 0)		//连接GuardMain
	{
		m_pProcInfoHead = &m_pInfoHead->ProcInfo;			//得到进程信息首地址
	}
	else 
	{
		//Log::log(0,"运行时告警:连接共享内存失败,GuardMain可能不存在\n");
		//ALARMLOG(0,MBC_schedule+24,"%s","连接共享内存失败,GuardMain可能不存在");
		return -1;
	}
	return 0;
}
Exemple #3
0
int destroy_loop(struct loopbuf* loop){
	//free(loop->p);
	DetachShm(loop);
	return 1;
}
Exemple #4
0
int GetProcInfo ()
{
	struct tm *pre;
	long clock = 0;
	char sCPU[100], sMEM[100];
	char sProcName[PROCESS_NAME_LEN];   
	int iTmpBillFlowID=-1, iTmpProcessID=-1; //已经显示的最大ID
	
	int iTmpAppID = -1;
	int iSelecetdPos = -2;

	int iListPos=0;
	
	//  
	char tmp[128] = {0};
	int ret = 0;
	InitList();
/*
	Control *pEdit = GetCtlByID(process_handle, 13);
	gStr2Arr(pEdit->sData);	
    */
    g_iflowid[0] = 0;
	
	Control *pEdit1 = GetCtlByID(process_handle, 15);
	gStr2Appid(pEdit1->sData);

	DetachShm ();

	if (AttachShm (0, (void **)&pInfoHead) >= 0) {
	    pProcInfoHead = &pInfoHead->ProcInfo;
	} else {
	    return -1;
	}

	time ((time_t *)&clock);
	    
	memset(aiProcessID, 0, MAX_APP_NUM*sizeof(int));

   iSelecetdPos = -1;

	while (iListPos < pInfoHead->iProcNum)
	{
	    int iSelecetdPos = SearchNextNode(&iTmpBillFlowID, &iTmpProcessID,&iTmpAppID);
	    //iSelecetdPos=6;//= SearchNextNode(&iTmpBillFlowID, &iTmpProcessID,&iTmpAppID);
	 
	    if (iSelecetdPos < 0)
	        break;

	//
	//	if( g_iflowid[0] && iTmpBillFlowID != g_iflowid )
	//		continue;
	
			if( ((g_iflowid[0] && !IsInArr( iTmpBillFlowID )))||((g_iappid[0] && !IsInAppid( iTmpAppID ))) || 
				!(pProcInfoHead+iSelecetdPos)->iBillFlowID || !(pProcInfoHead+iSelecetdPos)->iProcessID )
				continue;
			
	    strncpy( sProcName, (pProcInfoHead+iSelecetdPos)->sName, PROCESS_NAME_LEN);
	    sProcName[PROCESS_NAME_LEN] ='\0';
	    
	    if ((pProcInfoHead+iSelecetdPos)->iState == ST_RUNNING) {
					memset(sCPU,0,sizeof(sCPU));
					memset(sMEM,0,sizeof(sMEM));
	        pre = localtime ((const time_t *)&(pProcInfoHead+iSelecetdPos)->lLoginTime);
	        GetSysProcInfo ((pProcInfoHead+iSelecetdPos)->iSysPID, sMEM, sCPU);
			memset( proc_list_data[iListPos],0,strlen(proc_list_data[iListPos]) );
	        sprintf (proc_list_data[iListPos], 
	        "%-4d %6d %-20s %02d%02d%02d%02d %11d %-4s %5s %3s%\0",
	        (pProcInfoHead+iSelecetdPos)->iAppID,
	        (pProcInfoHead+iSelecetdPos)->iProcessID,
	        sProcName, 
	        pre->tm_mon+1,
	        pre->tm_mday,
	        pre->tm_hour,
	        pre->tm_min,
	        (pProcInfoHead+iSelecetdPos)->iAllTickets,
	        gsState[(pProcInfoHead+iSelecetdPos)->iState], 
	        sMEM, 
	        sCPU
	        );
	    }
	    else {
	        sprintf (proc_list_data[iListPos], 
	        "%-4d %6d %-20s -------- %11d %-4s %5d %3d%\0",
	        (pProcInfoHead+iSelecetdPos)->iAppID,
	        (pProcInfoHead+iSelecetdPos)->iProcessID,
	        sProcName,
	        (pProcInfoHead+iSelecetdPos)->iAllTickets,
	        gsState[(pProcInfoHead+iSelecetdPos)->iState], 
	        0,
	        0
	        );
	    }
	    proc_list_index[iListPos] = proc_list_data[iListPos];
	    aiProcessID[iListPos] = (pProcInfoHead+iSelecetdPos)->iProcessID;
	    
	    iListPos++;

		//插入InfoList
		InfoList[ret] = pProcInfoHead+iSelecetdPos;

		
	    ret ++;
	    //iSelecetdPos = -1;
	}
	l_lprocnum = ret;
	return ret;
}