/* * AtomDescriptor.cpp * * Created on: Feb 5, 2010 * Author: crueger */ #include "AtomDescriptor.hpp" #include "World.hpp" #include using namespace std; typedef map atoms_t; typedef atoms_t::iterator atoms_iter_t; AtomDescriptor::AtomDescriptor() { } AtomDescriptor::~AtomDescriptor() { } atoms_t& AtomDescriptor::getAtoms(){ return World::get()->atoms; } AtomPredicateDescriptor::AtomPredicateDescriptor() { } AtomPredicateDescriptor::~AtomPredicateDescriptor() { } atom* AtomPredicateDescriptor::find() { atoms_t atoms = getAtoms(); atoms_iter_t res = find_if(atoms.begin(),atoms.end(),boost::bind(&AtomPredicateDescriptor::predicate,this,_1)); return (res!=atoms.end())?((*res).second):0; } vector AtomPredicateDescriptor::findAll() { vector res; atoms_t atoms = getAtoms(); atoms_iter_t iter; for(iter=atoms.begin();iter!=atoms.end();++iter) { if(predicate(*iter)) res.push_back((*iter).second); } }