All pastes #765271 Raw Edit

Someone

public cpp v1 · immutable
·published 2007-11-07 22:24 UTC
rendered paste body
void found_uniq_visitors_by_masterhost_yandex(Crossroad* s, uint64& project_id, std::vector<uint32>& source_ids, std::vector<uint32>& campaign_ids, uint32& time_begin, uint32& time_end, std::vector<uint32>& target_ids) {	std::cout << "found_uniq_visitors_by_masterhost_yandex()" << std::endl;	std::vector<uint128> found_sessions_sources;		found_sessions_sources.clear();	std::vector<uint32>::iterator it;	std::vector<uint128>::iterator sit;	for (it = source_ids.begin(); it != source_ids.end(); ++it ) {		std::vector<uint128> sessionids = s->ReadSourcesIndex(*it);		for (sit = sessionids.begin(); sit != sessionids.end(); ++sit) {			uint32 time = s->ReadSTOHIndex(*sit);			if ((time >= time_begin) && (time < time_end)) {				found_sessions_sources.push_back(*sit);			}		}	}	std::unique(found_sessions_sources.begin(), found_sessions_sources.end());	std::cout << "found_sessions_sources.size(): " << found_sessions_sources.size() << std::endl;	std::vector<uint128> found_sessions_targets;		found_sessions_targets.clear();		for (it = target_ids.begin(); it != target_ids.end(); ++it ) {		std::vector<uint128> sessionids = s->ReadTargetsIndex(*it);		for (sit = sessionids.begin(); sit != sessionids.end(); ++sit) {			uint32 time = s->ReadSTOHIndex(*sit);			if ((time >= time_begin) && (time < time_end)) {				found_sessions_targets.push_back(*sit);			}		}	}	std::cout << "found_sessions_targets.size(): " << found_sessions_targets.size() << std::endl;	std::vector<uint128>::iterator ssit;	std::vector<uint128>::iterator stit;	std::vector<uint128> result;	/*for (ssit = found_sessions_sources.begin(); ssit != found_sessions_sources.end(); ++ssit) {		if (std::find(found_sessions_targets.begin(), found_sessions_targets.end(), *ssit) != found_sessions_targets.end()) {			result.push_back(*ssit);		}	}	*/	result.clear();	for (ssit = found_sessions_sources.begin(); ssit != found_sessions_sources.end(); ++ssit) {		for ( stit = found_sessions_targets.begin(); stit != found_sessions_targets.end(); ++stit) {			if (stit->low == ssit->low && stit->high == ssit->high) {				result.push_back(*ssit);				//std::cout << stit->low << " " << ssit->low << " = " << stit->high  << " " << ssit->high << std::endl;			}		}	}		std::vector<uint64> found_visitors;	std::vector<uint64>::iterator vit;	found_visitors.clear();	for (sit = result.begin(); sit != result.end(); ++sit) {		uint64 vis = s->ReadSTOVIndex(*sit);		found_visitors.push_back(vis);		//std::cout <<  vis << std::endl;	}	std::unique(found_visitors.begin(),found_visitors.end());	std::cout << "found_visitors.size():" << found_visitors.size() << std::endl;	}