vector<MenuTripodDataPtr> MenuCacheManagerI::parseFromMenuCacheRecordSeq(const MenuCacheRecordSeq& records) { vector<MenuTripodDataPtr> result; for (MenuCacheRecordSeq::const_iterator it = records.begin(); it != records.end(); ++it) { result.push_back(new MenuTripodData(*it)); } return result; }
void MenuCacheManagerI::setBatch(const MenuCacheRecordSeq& records, const Ice::Current& current) { MCE_INFO("[MenuCacheManagerI::setBatch] records.size = " << records.size()); vector<MenuTripodDataPtr> ptrs; for (MenuCacheRecordSeq::const_iterator it = records.begin(); it != records.end(); ++it) { ptrs.push_back(new MenuTripodData((*it)->userId, (*it)->type, (*it)->infoArray)); } writeThread_->add(ptrs); }
void MenuCacheManagerI::deleteBatch(const MenuCacheRecordSeq& records, const Ice::Current& current) { MCE_INFO("[MenuCacheManagerI::deleteBatch] records.size = " << records.size()); vector<MenuTripodDataPtr> ptrsToUpdate; for (MenuCacheRecordSeq::const_iterator it = records.begin(); it != records.end(); ++it) { MenuTripodDataPtr ptrToDelete = new MenuTripodData(*it); MenuTripodDataPtr ptr = getWithUserId(ptrToDelete->getUserId(), ptrToDelete->getCacheType()); ptr->deleteAppIds(ptrToDelete->getAppIds()); ptrsToUpdate.push_back(ptr); } if (!ptrsToUpdate.empty()) { updateCache(ptrsToUpdate); } }
void MenuCacheManagerI::operate(const MenuCacheRecordSeq& records, OpType type) { KeySeq keys = TripodHelper::getKeySeq(records); map<string, MenuTripodDataPtr> tripodDataPtrs = getFromDB(keys); vector<MenuTripodDataPtr> ptrsToWriteDB; for (MenuCacheRecordSeq::const_iterator it = records.begin(); it != records.end(); ++it) { map<string, MenuTripodDataPtr>::iterator itm = tripodDataPtrs.find(TripodHelper::getKey(*it)); if (itm != tripodDataPtrs.end()) { if (type == Delete) { itm->second->deleteAppIds((*it)->infoArray); } else { itm->second->addAppIds((*it)->infoArray); } ptrsToWriteDB.push_back(itm->second); } else { if (type == Add) { ptrsToWriteDB.push_back(new MenuTripodData(*it)); } } } writeThread_->add(ptrsToWriteDB); }