Exemplo n.º 1
0
ObjectResultPtr NoteFactory::create(const IntSeq& keys) {
	ConnectionHolder conn(_database);
	mysqlpp::Query query = conn.query();
	query << "SELECT * FROM " << _noteTable << " WHERE noteId in (";
	for (size_t i = 0; i < keys.size(); ++i) {
		query << keys.at(i) << ", ";
	}
	query << "0)";
	mysqlpp::Result res = query.store();
	ObjectResultPtr result = new ObjectResult;
	for (size_t i = 0; i < res.size(); ++i) {
		mysqlpp::Row row = res.at(i);
		NotePtr n = new Note;
		n->noteId = row["NOTEID"];
		n->quoteeId = row["QUOTEEID"];
		n->resource = row["RESOURCE"];
		n->type = row["TYPE"];
		n->unread = (int)row["UNREAD"] == 0 ? false : true;
		n->fromName = row["FROMNAME"].get_string();
		n->fromId = row["FROMID"];
		n->toId = row["TOID"];
		n->ownerName = row["OWNERNAME"].get_string();
		n->ownerId = row["OWNERID"];
		n->title = row["TITLE"].get_string();
		n->link = row["LINK"].get_string();
		n->imageLink = row["IMAGELINK"].get_string();
		n->timestamp = (time_t)mysqlpp::DateTime(row["TIMESTAMP"]);
		n->security = row["SECURITY"];
		result->data[n->noteId] = n;
	}
	return result;
}
Exemplo n.º 2
0
TribeTinyViewSeq
mop::hi::svc::model::UseredTribeManagerI::getMemberedTribeTinyViews(::Ice::Int userId,
                               ::Ice::Int offset,
                               ::Ice::Int limit,
                               const Ice::Current& current)
{
	UseredTribeServiceI& service = UseredTribeServiceI::instance();
    IntSeq memberedTribeIds = service.getMemberedTribeSet(userId)
    		->getAll(offset, limit);
   	TribeTinyViewSeq result;
    if (offset <= 0) {
    	offset = 0;
    }
    if (limit <= 0) {
    	limit = memberedTribeIds.size();
    }
    for (int i = 0; i < memberedTribeIds.size(); ++i) {
    	if (i < offset) {
    		continue;
    	}
    	if (result.size() >= limit) {
    		break;
    	}
    	try {
    		result.push_back(service.getTribeTinyView(memberedTribeIds.at(i)));
    	} catch (Ice::Exception& e) {
    	
    	}
    }
    return result;    
}   
Exemplo n.º 3
0
FeedMetaSeq UserFeedsI::getByTypes(const IntSeq& userids, ::Ice::Int begin, ::Ice::Int limit, const IntSeq& types, const ::Ice::Current& current) {
	ostringstream oss;
	oss << "UserFeedsI::getByTypes, userids.size: " << userids.size() << " begin: " << begin << " limit: " << limit;
	TimeCost tm = TimeCost::create(oss.str(), TimeCost::LOG_LEVEL_INFO);

	if(types.empty())
		return getSegment(fs_.gets(userids, begin + limit), userids, begin, limit);
	return getSegment(fs_.gets_with_filter(userids, TypesFilter(types), IdsFilter(std::vector<string>()), begin + limit), userids, begin, limit);
}
Exemplo n.º 4
0
ObjectResultPtr UserAdsCacheManagerI::getUserAdsCacheUrlData(
    const IntSeq& userIds) {
    MyUtil::LongSeq uids;
    for (MyUtil::IntSeq::const_iterator it = userIds.begin(); it
            != userIds.end(); ++it) {
        uids.push_back(*it);
    }
    return ServiceI::instance().getObjectCache()->locateObjects(USER_ADS_CACHE_URL, uids);
}
Exemplo n.º 5
0
IntSeq RoomMemberList::GetAllMembersSeq(){
  IntSeq ans;
  MemberSetIt it = _members.begin();
  for(; it != _members.end(); ++it){
    ans.push_back((*it));
  }
	MCE_DEBUG("RoomMemberList::GetAllMemberSeq --> ans.size =  "<<ans.size());
  return ans;
}
Exemplo n.º 6
0
MyUtil::IntSeq RecommendData::getFriendsRecommendRandom(int limit) {
	IceUtil::Mutex::Lock lock(*this);
	checkTimeout();	

	IntSeq result;
	Int2IntMap friendRankMap;
	for (Int2IntSeqMap::iterator iter = _recommendMap.begin();
			iter != _recommendMap.end(); ++iter) {
		if ( !iter->second.empty() ) {
			result.push_back( iter->first );

			if ( _friendrank[ iter->first ] <= 0 ) {
				friendRankMap[ iter->first ] = 1;
			} else {
				friendRankMap[ iter->first ] = _friendrank[ iter->first ];
			}
		}
	}

	if ( limit >= (int)friendRankMap.size() || limit < 0 ) {
		return result;
	}

	result.clear();

	int sum = 0;
	vector<pair<int,int> > fr;
	for (map<int,int>::const_iterator iter = friendRankMap.begin();
			iter != friendRankMap.end(); ++iter) {
		sum += iter->second;
		fr.push_back(*iter);
	}

	MCE_INFO("[RecommendData] getFriendsRecommendRandom ownerId(" << _ownerId << ") limit(" << limit << ") sum = " << sum);

	for (int i = 0; i < limit; ++i) {
		int r = 0;
		if (sum > 0) {
			r = rand() % sum;
		} else {
			MCE_WARN("[RecommendData] getFriendsRecommendRandom exception occur sum(" << sum << ")");
			break;
		}

		for (vector<pair<int,int> >::iterator iter = fr.begin();
				iter != fr.end(); ++iter) {
			r -= iter->second;
			if (r<=0) {
				result.push_back( iter->first );
				sum -= iter->second;
				iter->second = 0;
				break;
			}
		}
	}
	return result;
}
Exemplo n.º 7
0
IntSeq
IPTableManagerI::getUnivIdByIp(const string& ip, const Ice::Current& current)
{
    UnivInfoSeq seq = IPSorter::instance().get(ip);
    IntSeq res;
    for(int i =0; i<seq.size(); ++i)
    {
        res.push_back(seq.at(i)->id);
    }
    return res;
}
Exemplo n.º 8
0
MyUtil::IntSeq UserLoginData::getActiveUser(const MyUtil::IntSeq& userList) {
	MCE_INFO("[UserLoginData] getActiveUser userList size = " << userList.size());
	IntSeq result;
	for(IntSeq::const_iterator iter=userList.begin();
			iter!=userList.end(); ++iter) {
		if( _negtiveUserList.count(*iter) <= 0 ) {       //活跃用户
			result.push_back(*iter);
		}
	}	
	return result; 
}
Exemplo n.º 9
0
ObjectResultPtr UserApiCacheManagerI::getUserApiCacheData(
                const IntSeq& userIds) {
	int cluster = 4;
        MyUtil::LongSeq uids;
        for (MyUtil::IntSeq::const_iterator it = userIds.begin(); it
                        != userIds.end(); ++it) {
		if ((*it)%cluster == mod_) {
	                uids.push_back(*it);
		}
        }
        return retention_->locate(uids);
}
Exemplo n.º 10
0
//--------------------------------------------------------------------------------
void VertifyPipe::handle(const ObjectSeq& seq) {

	//MCE_INFO("VertifyPipe::handle --> thread_id = " << pthread_self());
	if (seq.empty()) {
		return;
	} else {
		//MCE_DEBUG("VertifyPipe::handle --> objectseq size = " <<seq.size());
	}
	
	VerifySeq vSeq;
	IntSeq needNotVerifyUsers;
	for (size_t i = 0; i < seq.size(); ++i) {
		MessagePtr m = MessagePtr::dynamicCast(seq.at(i));
		//MCE_INFO("m->from = " << m->from->userId << " m->to = " << m->to->userId);
		if( (m->type != MESSAGE && m->type != OFFLINE_MESSAGE) || (m->from->userId == 365734329 || m->to->userId == 365734329) ){//客服ID,不检查好友。
			//MCE_INFO("VertifyPipe::handle --> m->from = " << m->from << " m->to = " << m->to);
			needNotVerifyUsers.push_back(i);
			continue;
		}
		VerifyPtr v = new Verify();
		v->from = m->from->userId;
		v->to = m->to->userId;
		/*if(MESSAGE != m->type){
			v->to = v->from;
		}*/
		v->type = m->type;

/*		if (v->type == SYSTEM_MESSAGE) {
			v->sysMsgType = m->from->endpoint;
		}*/
		v->index = i;

		vSeq.push_back(v);
	}
	MyUtil::IntSeq indexSeq;
	try{
	 indexSeq = TalkRightAdapter::instance().batchVerify(getIndex(), vSeq);
	}catch(Ice::Exception& e){
		MCE_WARN("VertifyPipe::handle-->TalkRightAdapter::batchVerify-->" << e);
		}
	indexSeq.insert(indexSeq.end(), needNotVerifyUsers.begin(), needNotVerifyUsers.end());

	//MCE_DEBUG("VertifyPipe::handle -->indexSeq size:"<<indexSeq.size());
	for (size_t i = 0; i < indexSeq.size(); ++i) {
		MessagePtr m = MessagePtr::dynamicCast(seq.at(indexSeq.at(i)));
		//MCE_DEBUG("VertifyPipe::handle --> "<<m->to->index);
		if (m->to->index == 0 || m->to->index == 2 || m->to->index >1) {
			//MCE_DEBUG("VertifyPipe::handle --> endpoint:"<<m->to->endpoint);
			PipePool::instance().push(m->to->endpoint, 0, m);
		}
	}

}
Exemplo n.º 11
0
MyUtil::IntSeq StatusCacheManagerI::getStatusIdsFrom(const MyUtil::IntSeq& ids, const Ice::Current& current){
	ostringstream op;
	IntSeq res;
	for( MyUtil::IntSeq::const_iterator it = ids.begin(); it != ids.end(); ++it ){
		if( !_status[*it] ){
			res.push_back( *it );
			op << *it << "(0) ";
		}
	}
	MCE_INFO("StatusCacheManagerI::getStatusIdsFrom -> " << op.str()
                << " " << current.con->toString().substr(current.con->toString().find("remote", 25)));
	return res;
}
Exemplo n.º 12
0
Int2UserApiCacheDataMap UserApiCacheManagerI::getUserApiCacheList(const IntSeq& userIds, const Ice::Current&) {
        ObjectResultPtr objres = getUserApiCacheData(userIds);
        Int2UserApiCacheDataMap result;
        for (MyUtil::IntSeq::const_iterator it = userIds.begin(); it != userIds.end(); ++it) {
                ObjectMap::iterator hasRes = objres->data.find(*it);
                if (hasRes != objres->data.end()) {
                        result[*it]=UserApiCacheEntryPtr::dynamicCast(hasRes->second)->GetUserApiCacheData();
                } else {
                        MCE_WARN("Not Exists: " << *it);
                }
        }
        return result;
}
Exemplo n.º 13
0
::Ice::Int UserFeedsI::getItemCount(const IntSeq& userIds, const ::Ice::Current& current) {
	ostringstream oss;
	oss << " userId.size: " << userIds.size();
	InvokeClient tm = InvokeClient::create(current, oss.str(), InvokeClient::INVOKE_LEVEL_INFO);

	int count = 0;
	for(IntSeq::const_iterator it = userIds.begin();
			it != userIds.end(); ++it) {
		count += fs_.item_count(*it);
	}

	return count;
}
Exemplo n.º 14
0
MyUtil::IntSeq OnlineStateFilterManagerI::getOnlineIdsFrom(const MyUtil::IntSeq& ids, const Ice::Current& current) {
    ostringstream op;
    IntSeq res;
    for( MyUtil::IntSeq::const_iterator it = ids.begin(); it != ids.end(); ++it ) {
        if( _online_state[*it] ) {
            res.push_back( *it );
            op << *it << "(" << true << ") ";
        }
    }
    MCE_INFO("OnlineStateFilterManagerI::getOnlineStateBatch -> " << op.str()
             << " " << current.con->toString().substr(current.con->toString().find("remote", 25)));
    return res;
}
Exemplo n.º 15
0
MyUtil::IntSeq UserStateFilterManagerI::getGuideIdsFrom(const MyUtil::IntSeq& ids, const Ice::Current& current){
	ostringstream op;
	IntSeq res;
	for( MyUtil::IntSeq::const_iterator it = ids.begin(); it != ids.end(); ++it ){
		if( _user_state_guide[*it] ){
			res.push_back( *it );
		} else{
			op << *it << " ";
		}
	}
	MCE_INFO("UserStateFilterManagerI::getGuideIdsFrom " << ids.size() << " ids -> res: " << res.size() << " ids. filter: " << op.str()
                << " " << current.con->toString().substr(current.con->toString().find("remote", 25)));
	return res;
}
Exemplo n.º 16
0
OfferDataNSeq BackendProducer::createFromIPFriend( int userId, int ipFriendLimit, const map<int,int>& weights,
		const IntSeq& applyList, const IntSeq& friendList, const IntSeq& blockList, const IntSeq& commBlockList,
		ostringstream& createLog, ostringstream& createDetail ){
	struct timeval tvStart, tvIP;
	gettimeofday( &tvStart, NULL );

	OfferDataNSeq res;

	IntSeq filterList( friendList );	
	filterList.push_back(userId);
	filterList.insert( filterList.end(), applyList.begin(), applyList.end() );
	sort( filterList.begin(), filterList.end() );

	int ipLimit = 1;
	xce::friendfinder::IPNoteSeq ipSeq = OfferFriendsUtil::getFreqIP(userId, ipLimit);

	int base_weight = 0;
	map<int,int>::const_iterator weiIt = weights.find(BaseTypeIPSame);
	if( weiIt!=weights.end() ) base_weight = weiIt->second;
	vector<int> ipFriends;
	createDetail << " ip_";
	if( !ipSeq.empty() ) {
		ipFriends = OfferFriendsUtil::getUsersWithMaskByIP( ipSeq.at(0).ip, ipFriendLimit, filterList );
		/*
		char chrLongValue[30];
		sprintf(chrLongValue, "%lu", ipSeq.at(0).ip);
		*/
		for(vector<int>::iterator iter=ipFriends.begin(); iter!=ipFriends.end(); ++iter){
			OfferDataN ipFriend;
			ipFriend.userId = *iter;
			ipFriend.weight = base_weight;
			//ipFriend.infos.insert(pair<int, string>(BaseTraitIPSame, string(chrLongValue)));
			ipFriend.sign = ((int)0) | (((int)1)<<BaseTraitIPSame);
			res.push_back(ipFriend);
			createDetail << ipFriend.userId << "_";
		}
		createLog << " ipFriends(" << ipSeq.at(0).ip << ")(" << ipFriends.size() << ")";
	} else {
		createLog << " ipFriends(0)(" << ipFriends.size() << ")";
	}

	gettimeofday( &tvIP, NULL );
	double linIPStart = ((double)tvStart.tv_sec*1000000 + (double)tvStart.tv_usec);
	double linIPEnd = ((double)tvIP.tv_sec*1000000 + (double)tvIP.tv_usec);
	double linIPTime = linIPEnd - linIPStart;
	linIPTime = linIPTime/1000000;
	createLog << "(" << linIPTime << "s)";
	return res;

}
Exemplo n.º 17
0
void NoticePipe::handle(const ObjectSeq& objs){
	MessageSeq msgs;
	IntSeq ids;

	for (size_t i = 0; i < objs.size(); ++i) {
		MessagePtr m = MessagePtr::dynamicCast(objs.at(i));
		msgs.push_back(m);
		ids.push_back(m->to->userId);
	}
	JidSeqMap jmap;
	try{
		//jmap = OnlineCenterAdapter::instance().getUsersJids(ids);
		jmap = TalkFunStateAdapter::instance().getUsersJids(ids);
	}catch(Ice::Exception& e){
		//MCE_WARN("NoticePipe::handle --> call OnlineCenterAdapter.getUsersJids error : " << e);
		MCE_WARN("NoticePipe::handle --> call TalkFunStateAdapter.getUsersJids error : " << e);
	}
	MessageSeq res;
	for (size_t i = 0; i < msgs.size(); ++i) {
		JidSeqMap::iterator it = jmap.find(msgs.at(i)->to->userId);
		if (it == jmap.end()) {
			continue;
		}
		for (size_t j = 0; j < it->second.size(); ++j) {
			if (it->second.at(j)->endpoint.size() > 1
					&& it->second.at(j)->endpoint[0] == 'T') {
				MessagePtr m = new Message();
				m->from = new Jid();
				m->from->userId = -1;
				m->from->endpoint = "appnotice.talk.xiaonei.com";
				m->from->index = -1;
				m->to = it->second.at(j);
				m->type = msgs.at(i)->type;
				m->msg = msgs.at(i)->msg;

				res.push_back(m);
			}

		}
	}
	if (!res.empty()) {
		MCE_INFO("NoticePipe::handle --> Notice size:"<<res.size());
		try{
			TalkDeliverAdapter::instance().deliver(res);
		}catch(Ice::Exception& e){
			MCE_WARN("NoticePipe::handle --> call TalkDeliverAdapter.deliver error : " << e);
		}
	}
}
Exemplo n.º 18
0
MyUtil::IntSeq JourneyLogicI::getList(::Ice::Long key, ::Ice::Int limit, const Ice::Current& current) {
  using namespace xce::tripod;

  ostringstream inMsg;
  inMsg << "JourneyLogicI::getList key " << key << " limit :" << limit;
  InvokeClient ic = InvokeClient::create(current, inMsg.str(), InvokeClient::INVOKE_LEVEL_INFO);
  IntSeq result;
  StringListType resultStr;
  JourneyLogicListTripodAdapter::instance().GetSortedSet(lexical_cast<string>(key), &resultStr, 0, limit);
  for (StringListType::const_iterator iter = resultStr.begin(); iter != resultStr.end(); iter++) {
    MCE_DEBUG("JourneyLogicI::getList(::Ice::Long key) key " << key << " *iter " << *iter);
    result.push_back(lexical_cast<int>(*iter));
  }
  return result;
}
Exemplo n.º 19
0
FeedMetaSeq UserFeedsI::get(const IntSeq& userids, ::Ice::Int begin, ::Ice::Int limit, const ::Ice::Current& current) {
	ostringstream oss;
	oss << " userids.size: " << userids.size() << " begin: " << begin << " limit: " << limit;
	InvokeClient tm = InvokeClient::create(current, oss.str(), InvokeClient::INVOKE_LEVEL_INFO);

	try {
		return getSegment(fs_.gets(userids, begin + limit), userids, begin, limit);
	} catch (std::exception& e) {
		MCE_WARN("UserFeedsI::get Exception! " << e.what());
	} catch (...) {
		MCE_WARN("UserFeedsI::get Exception, userids.size: " << userids.size());
	}

	return FeedMetaSeq();
}
Exemplo n.º 20
0
FeedMetaSeq UserFeedsI::get(const IntSeq& userids, ::Ice::Int begin, ::Ice::Int limit, const ::Ice::Current& current) {
	ostringstream oss;
	oss << "UserFeedsI::get, userids.size: " << userids.size() << " begin: " << begin << " limit: " << limit;
	TimeCost tm = TimeCost::create(oss.str(), TimeCost::LOG_LEVEL_INFO);

	return getSegment(fs_.gets(userids, begin + limit), userids, begin, limit);
}
Exemplo n.º 21
0
FeedMetaSeq UserFeedsI::getLessThanFeedidByTypesWithFilter(const IntSeq& userids, ::Ice::Long feedid, ::Ice::Int limit, const IntSeq& types, const StrSeq& filter, const ::Ice::Current& current) {
	ostringstream oss;
	oss << "UserFeedsI::getLessThanFeedidByTypesWithFilter, userids.size: " << userids.size() << " limit: " << limit << " feedid: " << feedid;
	TimeCost tm = TimeCost::create(oss.str(), TimeCost::LOG_LEVEL_INFO);

	return getSegment(fs_.gets_less_feedid_with_filter(userids, TypesFilter(types), IdsFilter(filter), feedid, limit), userids, 0, limit);
}
Exemplo n.º 22
0
FeedMetaSeq UserFeedsI::getByTypes(const IntSeq& userids, ::Ice::Int begin, ::Ice::Int limit, const IntSeq& types, const ::Ice::Current& current) {
	ostringstream oss;
	oss << " userids.size: " << userids.size() << " begin: " << begin << " limit: " << limit;
	InvokeClient tm = InvokeClient::create(current, oss.str(), InvokeClient::INVOKE_LEVEL_INFO);

	try {
		if(types.empty())
			return getSegment(fs_.gets(userids, begin + limit), userids, begin, limit);
		return getSegment(fs_.gets_with_filter(userids, TypesFilter(types), IdsFilter(std::vector<string>()), begin + limit), userids, begin, limit);
	} catch (std::exception& e) {
		MCE_WARN("UserFeedsI::getByTypes Exception! " << e.what());
	} catch (...) {
		MCE_WARN("UserFeedsI::getByTypes Exception!");
	}
	return FeedMetaSeq();
}
Exemplo n.º 23
0
ObjectResultPtr UserAdsCacheManagerI::getUserAdsCacheData(
    const IntSeq& userIds) {

    MyUtil::LongSeq uids;
    for (MyUtil::IntSeq::const_iterator it = userIds.begin(); it
            != userIds.end(); ++it) {
        uids.push_back(*it);
    }
    ObjectResultPtr result = new ObjectResult;
    ObjectResultPtr obj = ServiceI::instance().getObjectCache()->locateObjects(USER_ADS_CACHE_URL, uids);
    for(MyUtil::ObjectMap::const_iterator it = obj->data.begin(); it
            != obj->data.end(); ++it) {
        result->data.insert(make_pair((*it).first, toOld(UserAdsCacheUrlDataPtr::dynamicCast((*it).second))));
    }
//       return ServiceI::instance().getObjectCache()->locateObjects(USER_ADS_CACHE_URL, uids);
    return result;
}
Exemplo n.º 24
0
IntSeq IPRecordManagerI::getUsersWithMask(::Ice::Long ip,::Ice::Int limit,const MyUtil::IntSeq& mask,
			const Ice::Current& current){
	IPRecordDataPtr obj = locateIPRecordData(ip);
	IntSeq res = obj->getWithMask(limit,mask);
	MCE_INFO( "[IPRecordManagerI::getUsersWithMask] ip=" << ip << " size=" << obj->size() << " limit=" << limit << " mask.size=" << mask.size() << " res.size()=" << res.size() 
                << " " << current.con->toString().substr(current.con->toString().find("remote", 25)));
	return res;
}
Exemplo n.º 25
0
FeedDataSeq UserFeedSet::getFeedDataSeqByType(const IntSeq& types, int begin,
    int limit) {

  IceUtil::Mutex::Lock lock(_mutex);

  time_t t = time(NULL);
  _lastAccessTime = t;
  //	if (t - _lastSortTime > 300) {
  //		_lastSortTime = t;
  //		TaskManager::instance().execute(new SortTask(this));
  //	}

  WeightIndex& index = _mergeGroupSet.get<1> ();
  FeedDataSeq seq;
  vector<WeightIndex::iterator> itSeq;

  if (index.size() < (unsigned int) (begin + limit) + 10) {
    //		MCE_DEBUG("UserFeedSet::getFeedContentSeq --> _loadStat:"<<_loadStat<<"  index.size(): "<<index.size()<<"  begin: "<<begin<<"   limit: "<<limit);
    if (_loadStat == 0) {
      load();
      FeedItemManagerI::instance().addkickUser(_user);
    }
  }
  set<int> typeSet;
  for (size_t i = 0; i < types.size(); ++i) {
    typeSet.insert(types.at(i));
  }
  WeightIndex::iterator iter = index.begin();
  for (int k = 0; iter != index.end() && k < begin; ++iter) {
    int type = (*iter)->type();
    if (typeSet.find(type) != typeSet.end()) {
      ++k;
    }
  }
  for (int h = 0; iter != index.end() && h < limit; ++iter) {
    int type = (*iter)->type();
    if (typeSet.find(type) != typeSet.end()) {
      itSeq.push_back(iter);
      ++h;
    }
  }

  _buildFeedContents(index, itSeq, seq);
  MCE_DEBUG("UserFeedSet::getFeedContentSeq --> content.size:"<<seq.size());
  return seq;
}
Exemplo n.º 26
0
Int2UserAdsCacheDataMap UserAdsCacheManagerI::getUserAdsCacheList(const IntSeq& userIds, const Ice::Current& current) {
    ostringstream msg;
    msg << "UserAdsCacheManagerI::getUserAdsCacheList -> size: " << userIds.size() << " "
        << current.con->toString().substr(current.con->toString().find("remote",25));
    TimeCost tc = TimeCost::create(msg.str());

    ObjectResultPtr objres = getUserAdsCacheData(userIds);
    Int2UserAdsCacheDataMap result;
    for (MyUtil::IntSeq::const_iterator it = userIds.begin(); it != userIds.end(); ++it) {
        ObjectMap::iterator hasRes = objres->data.find(*it);
        if (hasRes != objres->data.end()) {
            result[*it]=toOld(UserAdsCacheUrlDataPtr::dynamicCast(hasRes->second));
        } else {
            MCE_WARN("Not Exists: " << *it);
        }
    }
    return result;
}
Exemplo n.º 27
0
IntSeq MemberList::getMemberList(const RoomIdPtr& rid, Affiliation affiliation) {
	//IceUtil::Mutex::Lock lock(_mutex);
	map<RoomIdPtr, map<Affiliation, set<int> > >::iterator rit =
			_members.find(rid);
	if (rit == _members.end()) {
		return IntSeq();
	}

	map<Affiliation, set<int> >::iterator it = rit->second.find(affiliation);
	if (it == rit->second.end()) {
		return IntSeq();
	}
	IntSeq seq;
	for (set<int>::iterator sit = it->second.begin(); sit != it->second.end(); ++sit) {
		seq.push_back(*sit);
	}
	return seq;
}
Exemplo n.º 28
0
map<int, map<int,UnivData> > UnivLinkFriends::linkFriends(map<int, map<int,UnivData> >& uds){
	map<int, map<int,UnivData> > res;
	int bTotal = 0;
	int aTotal = 0;
	for (map<int, map<int,UnivData> >::iterator itMap1 = uds.begin(); itMap1
			!= uds.end(); ++itMap1) {
		IntSeq ids;
		for ( map<int,UnivData>::iterator itMap2 = itMap1->second.begin(); itMap2 != itMap1->second.end(); ++itMap2) {
			ids.push_back( itMap2->first );
		}
		bTotal += itMap1->second.size();

		map<int,string> friends;

		MyUtil::Int2IntSeqMap buddies = xce::buddy::adapter::BuddyByAddTimeCacheAdapter::instance().getFriendLists(ids);
		for( MyUtil::Int2IntSeqMap::iterator it1=buddies.begin(); it1!=buddies.end(); ++it1 ){
			if( it1->second.size() <= 0 ){
				continue;
			}
			string& guestStr = friends[it1->first];
			for( MyUtil::IntSeq::iterator it2=it1->second.begin(); it2!=it1->second.end(); ++it2 ){
				guestStr = guestStr + "" + boost::lexical_cast<string>(*it2) + ",";
			}
		} 

		aTotal += friends.size();

		cout << "[UnivLinkFriends::linkFriends] linking mod " << itMap1->first << " size/fSize: " << itMap1->second.size() << "/" << friends.size() << endl;

		for ( map<int,string>::iterator itMap3 = friends.begin(); itMap3 != friends.end(); ++itMap3) {
			map<int,UnivData>::iterator itMap4 = itMap1->second.find( itMap3->first );
			UnivData ud = itMap4->second;
			ud.has_friends = true;
			ud.friend_list = itMap3->second;

			res[itMap1->first].insert( make_pair(itMap4->first,ud) );
		}
	}

	cout << "[UnivLinkFriends::linkFriends] size/linkedSize: " << bTotal << "/" << aTotal << endl;

	return res;
}
Exemplo n.º 29
0
::MyUtil::IntSeq
mop::hi::svc::model::UseredTribeSetI::getAll(::Ice::Int begin,
                         ::Ice::Int limit,
                         const Ice::Current& current)
{
	if (begin < 0) {
		begin = 0;
	}
	IceUtil::Mutex::Lock lock(*this);
	IntSeq result;
	for(IntSeq::iterator it = tribeIds.begin();
		it != tribeIds.end();
		++it)
	{
		if(begin-- > 0)	continue;
		result.push_back(*it);
		if(limit > 0 && result.size() >= limit) break;
	}
    return result;
}
Exemplo n.º 30
0
IntSeq RoomPool::GetRoomMember(const MucRoomIdPtr& roomid){

  RoomMemberListPtr rmlptr;
  IntSeq ans;
  rmlptr = GetMemberList(roomid);
  if(rmlptr){
    IceUtil::RWRecMutex::RLock lock(_rwmutex);
    ans = rmlptr->GetAllMembersSeq();
  }
  MCE_DEBUG("RoomPool::GetRoomMember --> roomname = " << roomid->roomname << " ANS.SIZE = " << ans.size());
  return ans;
}