Exemplo n.º 1
0
unit_map::unit_iterator unit_map::find(const size_t &id) {
	umap::iterator iter = map_.find(id);
	if (iter == map_.end() || !iter->second.first) {
		return unit_iterator(map_.end(), this);
	}
	return unit_iterator(iter, this);
}
Exemplo n.º 2
0
unit_map::unit_iterator unit_map::find(const std::string& id) {
	WRN_NG << "Finding using id is slow operation\n";
	umap::iterator iter = std::find_if(map_.begin(), map_.end(), match_unit_id(id));
	if (iter == map_.end() || !iter->second.first) {
		return unit_iterator(map_.end(), this);
	}
	return unit_iterator(iter, this);
}
Exemplo n.º 3
0
unit_map::unit_iterator unit_map::find(const map_location &loc) {
	lmap::const_iterator i = lmap_.find(loc);
	if (i == lmap_.end()) {
		return unit_iterator(map_.end(), this);
	}

	umap::iterator iter = map_.find(i->second);

	assert(iter->second.first);
	return unit_iterator(iter , this);
}
Exemplo n.º 4
0
unit_map::unit_iterator unit_map::unit_iterator::operator++(int){

	assert(i_ != map_->map_.end());

	umap::iterator iter(i_);
	++i_;
	while (i_ != map_->map_.end() && !valid()) {
		++i_;
	}

	return unit_iterator(iter, map_);
}
Exemplo n.º 5
0
unit_map::unit_iterator unit_map::begin() {
	// This call just needs to go somewhere that is likely to be
	// called when num_iters_ == 0. This seems as good a place as any.
	clean_invalid();

	umap::iterator i = map_.begin();
	while (i != map_.end() && !is_valid(i)) {
		++i;
	}

	return unit_iterator(i, this);
}
Exemplo n.º 6
0
unit_map::unit_iterator unit_map::begin() {
		// clean if there are more invalid than valid, this block just needs to go somewhere that is likely to be
		// called when num_iters_ == 0. This seems as good a place as any.
		if (num_invalid_ > lmap_.size() && num_iters_ == 0) {
			clean_invalid();
		}

		umap::iterator i = map_.begin();
		while (i != map_.end() && !i->second.first) {
			++i;
		}
		return unit_iterator(i, this);
}
Exemplo n.º 7
0
unit_map::unit_iterator unit_map::find(const size_t &id) {
	umap::iterator iter = map_.find(id);
	iter = is_valid(iter) ? iter : map_.end();

	return unit_iterator(iter, this);
}