本文整理汇总了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());
}