rendered paste bodyvoid task(sc_session *s,sc_segment* segment,sc_addr graph){ typedef std::set<sc_addr> vertexs_set; vertexs_set visited_vertexs; sc_addr temp_connective,second_vertex; sc_addr sc_visited_vertexes = s->create_el(segment,SC_N_CONST); sc_iterator* it = s->create_iterator(sc_constraint_new(CONSTR_5_f_a_a_a_f,graph,0,0,0,graph_theory::connective_),true); sc_addr first_connnective = it->value(2); sc_iterator* first_connnective_it = s->create_iterator(sc_constraint_new(CONSTR_3_f_a_a,first_connnective,0,0),true); sc_addr first_vertex = first_connnective_it->value(2); visited_vertexs.insert(first_vertex); sc_set::include_in(s,segment,first_vertex,sc_visited_vertexes); for(vertexs_set::iterator iter = visited_vertexs.begin(); iter != visited_vertexs.end();++iter){ sc_iterator* vertex_it = s->create_iterator(sc_constraint_new(CONSTR_3l2_f_a_a_a_f,graph,0,0,0,(*iter)),true); sc_for_each (vertex_it){ temp_connective=vertex_it->value(2); sc_iterator* temp_connective_it = s->create_iterator(sc_constraint_new(CONSTR_3_f_a_a,temp_connective,0,0),true); if((second_vertex = temp_connective_it->value(2)) == *iter){ temp_connective_it->next(); second_vertex = temp_connective_it->value(2); } if(!sc_set::is_in(s,second_vertex,sc_visited_vertexes)){ sc_set::include_in(s,segment,second_vertex,sc_visited_vertexes); visited_vertexs.insert(second_vertex); printf("%s:%s\n",s->get_idtf(*iter).c_str(),s->get_idtf(second_vertex).c_str()); } } } delete it;}