Example #1
0
int CEmsInfo::CollectProcess()
{
    int nRet = 0;
    time_t receiveTime = 0;
    time_t currentTime = 0;
    list<CSessionInfo*>::iterator iter;
    CSessionInfo *cSession = NULL;

    currentTime = time(NULL);

    for(iter=m_lstPendingQueue.begin();iter != m_lstPendingQueue.end();){
        cSession = *iter;
        receiveTime = cSession->GetReceiveTime();
        if((currentTime - receiveTime) > RECEIVE_WAIT_TIME){
            DEBUG_LOG("RECEIVE PROCESS\n");
            /* receive process */
            nRet = CollectAnswer(cSession);
            if(nRet != STA_OK){
                STA_LOG(STA_ERR,"STS Collect failed(nRet=%d)\n",nRet);
            }
            m_lstPendingQueue.erase(iter++);
            delete cSession;
        }
        else {
            iter++;
        }
    }

    return STA_OK;
}