当前位置: 首页>>代码示例>>C++>>正文


C++ UserPtr::AddClick方法代码示例

本文整理汇总了C++中UserPtr::AddClick方法的典型用法代码示例。如果您正苦于以下问题:C++ UserPtr::AddClick方法的具体用法?C++ UserPtr::AddClick怎么用?C++ UserPtr::AddClick使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在UserPtr的用法示例。


在下文中一共展示了UserPtr::AddClick方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: AddUserData

void AdBlindness::AddUserData(int userid, Ice::Long group_id, bool pv_flag) {

  IceUtil::Mutex::Lock lock(mutex_);
  UidIndex & index = evictor_.get<1> ();
  UidIndex::iterator uit = index.find(userid);
  if (uit != index.end()) {
    if(pv_flag) {
      (*uit)->AddPv(group_id);
    } else {
      (*uit)->AddClick(group_id);
    }
    SeqIndex::iterator sit = evictor_.project<0> (uit);//更新之后放到前面
    evictor_.relocate(evictor_.get<0> ().begin(), sit);
    return;
  }
  //如果不在cache中,产生新的
  UserPtr upt = new User();
  upt->user_id_ = userid;
  if(pv_flag) {
    upt->AddPv(group_id);
  } else {
    upt->AddClick(group_id);
  }
  SeqIndex & sindex = evictor_.get<0> ();
  pair<SeqIndex::iterator, bool> p = evictor_.push_front(upt); //用户提前
  if (!p.second) { //
    sindex.relocate(sindex.begin(), p.first);
  } else { //用户逐出
    while (evictor_.size() > kUserSize) {//判定是否要逐出用户
      MCE_INFO("AdBlindness::AddClick:userid:" <<userid <<",evictor size:" << evictor_.size()<<"evictor userid:"<<(*(evictor_.rbegin()))->user_id_);
      evictor_.pop_back();
    }
  }
  MCE_DEBUG("AdBlindness::AddClick:userid:" <<userid <<",evictor size:" << evictor_.size());
}
开发者ID:bradenwu,项目名称:oce,代码行数:35,代码来源:AdBlindness.cpp


注:本文中的UserPtr::AddClick方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。