Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);
  }
}
Ejemplo n.º 4
0
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);  
}
Ejemplo n.º 5
0
void MenuCacheManagerI::setBatch(const MenuCacheRecordSeq& records, const Ice::Current& current) {
  MCE_INFO("[MenuCacheManagerI::setBatch] records.size = " << records.size());
  updateCache(parseFromMenuCacheRecordSeq(records));
}
Ejemplo n.º 6
0
void MenuCacheManagerI::deleteBatch(const MenuCacheRecordSeq& records, const Ice::Current& current) {
  MCE_INFO("[MenuCacheManagerI::deleteBatch] records.size = " << records.size());
  operate(records, Delete);
}