static BOOL bRemoveMapEntry(const SACK_MAP& RefObj, UINT& ClientID) { BOOL bResult = FALSE; CACK_MAP_LIST::iterator iResult = std::find( sg_asAckMapBuf.begin(), sg_asAckMapBuf.end(), RefObj ); if (iResult != sg_asAckMapBuf.end()) { bResult = TRUE; ClientID = (*iResult).m_ClientID; sg_asAckMapBuf.erase(iResult); } return bResult; }
/** * \brief Function to retreive the Tx message entry from sg_asAckMapBuf list and delete. * Also returns the respective client ID. * \param[in] RefObj, is SACK_MAP entry to find and delete * \param[out] ClientID, is client ID of the RefObj found * \return TRUE if RefObj is found, else FALSE * \authors Ashwin R Uchil * \date 19.07.2014 Created */ BOOL bRemoveMapEntry(const SACK_MAP& RefObj, UINT& ClientID) { EnterCriticalSection(&sg_CritSectForAckBuf); // Lock the buffer BOOL bResult = FALSE; CACK_MAP_LIST::iterator iResult = std::find( sg_asAckMapBuf.begin(), sg_asAckMapBuf.end(), RefObj ); //if ((*iResult).m_ClientID > 0) if (iResult != sg_asAckMapBuf.end()) { bResult = TRUE; ClientID = (*iResult).m_ClientID; sg_asAckMapBuf.erase(iResult); } LeaveCriticalSection(&sg_CritSectForAckBuf); // Unlock the buffer return bResult; }