Ejemplo n.º 1
0
int main()
{
  int i = 0;
  int j = 0;
  DLLIST *item = NULL;
  for(i = 1; i <= 10; i++)
  {
    DLAppend(&tryList, 0, &i, sizeof(int));
  }
  printList();

  for(item = DLGetFirst(tryList); item != NULL; item = item->Next)
  {
    j = j + 1;
    if(j == 1 || j == 6 || j == 10)
    {
        item->Tag = 0;
    }
    else
    {
        item->Tag = 1;
    }
    printf("totalaa count = %d\r\n", DLCount(tryList));
  }
  printf("j = %d\r\n", j);

  if(tryList != NULL)
  {
    for(item = DLGetFirst(tryList); item != NULL;)
    {
       DLLIST *nextItem = item->Next;
        if(item != NULL && item->Tag == 1)
        {
            if(item == DLGetFirst(tryList))
            {
                printf("aaa\r\n");
                tryList = item->Next;
                DLDelete(item);
                item = tryList;
                continue;
            }
            else
            {
                printf("bbb\r\n");
                DLDelete(item);
                //item = nextItem;
            }
        }
        item = nextItem;
    }
    
  }
  printList();


}
Ejemplo n.º 2
0
printList()
{
  DLLIST *item = NULL;
  for(item = DLGetFirst(tryList); item != NULL; item = item->Next)
  {
    int *i = item->Object;
    if(NULL == i)
    {
        printf("NULL in list\r\n");
    }
    else
    {
        printf(" %d ", (*i));
    }
  }
  
  printf("total count = %d\r\n", DLCount(tryList));
}
Ejemplo n.º 3
0
/*
	查找当前技术报警的最高级别
	return -1: error
	pInfo: 存放报警记录详细资料
*/
static int GetTecAlarmClass(PB_ALM_INFO pInfo)
{
	int res;
	int iListNum = 0;
	int iClass = -1;
	int i;
	DLLIST *FindAddr=NULL;			//查找到的记录的地址
	B_ALM_INFO *pFindInfo=NULL;		//查找到的记录
	B_ALM_INFO FindInfo;				//查找到的记录
		
	iListNum = DLCount((DLLIST *)gDListAlmTec);
	
	if(iListNum <=0) iClass = -1;
	
	//遍历链表,查找级别最高的记录
	FindAddr = DLGetFirst(gDListAlmTec);
	for(i=0; i<iListNum;i++){
		if(FindAddr != NULL){
// 			pthread_mutex_lock(&mtPhyAlm);
			pFindInfo = (B_ALM_INFO *)DLGetData(FindAddr, NULL, NULL);
			FindInfo = *pFindInfo;
			FindAddr = FindAddr->Next;
// 			pthread_mutex_unlock(&mtPhyAlm);
			if(pFindInfo !=NULL){
				if(FindInfo.bClass == ALARM_INFO) FindInfo.bClass = ALARM_OFF;
				if(iClass < FindInfo.bClass){
					iClass = FindInfo.bClass;
					*pInfo = *pFindInfo;
				}
				//如果查到第一个高级报警的记录,就不用再查了
				if(iClass >= ALARM_HIGH && iClass !=ALARM_INFO){
					break;	
				}
			}
		}
		else{
			if(B_PRINTF) printf("%s:%d No Data Found.\n", __FILE__, __LINE__);
		}
				
	}
	
	return iClass;
}