int DefaultDataCacheExpirationController::cacheCleanCycle() { // It deletes expired entries from the Data Cache and from the Transmission History lockDataCache(); DArray2<String> *pDArrayExpired = getExpiredMessageIDs(); if (pDArrayExpired != NULL) { if (pDArrayExpired->size() != 0) { int iTH = 0; for (uint32 i = 0; i < pDArrayExpired->size(); i++) { deleteMessage ((*pDArrayExpired)[i]); if (_pTransmissionHistory->hasMessage ((*pDArrayExpired)[i].c_str())) { _pTransmissionHistory->deleteMessage ((*pDArrayExpired)[i].c_str()); iTH++; } } int iRet = pDArrayExpired->size(); checkAndLogMsg ("DefaultDataCacheExpirationController::cacheCleanCycle", Logger::L_Info, "deleted <%d> messages from Data Cache and <%d> from Transmission History\n", iRet, iTH); delete pDArrayExpired; releaseDataCache(); return iRet; } delete pDArrayExpired; } releaseDataCache(); return 0; }
char * IHMC_ACI::addOnDemandSuffixToId (const char *pszKey) { if (pszKey == NULL) { return NULL; } DArray2<String> aTokenizedKey (6U); if (isAllChunksMessageID (pszKey)) { int rc = convertKeyToField (pszKey, aTokenizedKey, 3, MSG_ID_GROUP, MSG_ID_SENDER, MSG_ID_SEQ_NUM); if (rc != 0) { return NULL; } } else if (convertKeyToField (pszKey, aTokenizedKey) != 0) { return NULL; } char *pszNewGroupName = getOnDemandDataGroupName (aTokenizedKey[MSG_ID_GROUP].c_str()); String msgId (pszNewGroupName); for (unsigned int i = MSG_ID_SENDER; i < aTokenizedKey.size(); i++) { msgId += MessageHeader::MSG_ID_SEPARATOR; msgId += aTokenizedKey[i]; } return msgId.r_str(); free (pszNewGroupName); return msgId.r_str(); }
void DefaultDataCacheExpirationController::thresholdCapacityReached (uint32 ui32Length) { // For now it just delete expired entries lockDataCache(); DArray2<String> *pDArrayExpired = getExpiredMessageIDs(); if(pDArrayExpired != NULL) { if(pDArrayExpired->size() != 0) { for (uint32 i = 0; i < pDArrayExpired->size(); i++) { deleteMessage ((*pDArrayExpired)[i]); } delete pDArrayExpired; releaseDataCache(); return; } delete pDArrayExpired; } releaseDataCache(); }
void DefaultDataCacheExpirationController::spaceNeeded (uint32 ui32bytesNeeded, MessageHeader *pIncomingMgsInfo, void *pIncomingData) { // For now it just delete expired entries lockDataCache(); DArray2<String> *pDArrayExpired = getExpiredMessageIDs(); if(pDArrayExpired != NULL) { if(pDArrayExpired->size() != 0) { for(uint32 i = 0; i < pDArrayExpired->size(); i++) { deleteMessage ((*pDArrayExpired)[i]); } delete pDArrayExpired; releaseDataCache(); return; } delete pDArrayExpired; } releaseDataCache(); }