/** * Q: how can this be optimized? * @brief provides access to all call transitions with the given from state * and symbol in this collection of transitions * * @param - from: the desired from state for the call transitions * @param - sym: the desired symbol for the call transitions * @return the set of call transitions with the given from state and symbol * */ const TransitionStorage::Calls TransitionStorage::getCalls( State from, Symbol sym ) const { Calls result; Calls const & outgoing = T_info.callTrans(from); for( CallIterator cit = outgoing.begin(); cit != outgoing.end(); cit++ ) { if( getCallSym(*cit) == sym ) result.insert(*cit); } return result; }
/** * * @brief removes all call transitions with the given symbol * * @param - sym: the symbol whose transitions to remove * @return false if no transitions were removed, true otherwise * */ bool TransitionStorage::removeCallTransSym( Symbol sym ) { Calls removeTrans; //Find transitions to remove. for( CallIterator cit = callTrans.begin(); cit != callTrans.end(); cit++ ) { if( getCallSym(*cit) == sym ) removeTrans.insert(*cit); } //Remove transitions. for( CallIterator rit = removeTrans.begin(); rit != removeTrans.end(); rit++ ) { removeCall(*rit); } return removeTrans.size() > 0; }