Exemple #1
0
//处理批量read边的函数,边都属于一个图
void handler_read_two_edges(Replier &rep){
	string graph_name=rep.get_graph_name();
	list<Two_vertex> &vertexes=rep.get_two_vertexes();
	list<Two_vertex>::iterator it=vertexes.begin();
	Subgraph *sub;
	uint32_t num=0;
	list<Edge_u> edges;
	while(it!=vertexes.end()){
		int res;
		sub=graph_set->get_subgraph(graph_name,(*it).s_id);//得到该图该顶点所在的子图,子图不存在,则会创建一个
		//sub->read_edges((*it).s_id,(*it).d_id,edges);
		res=sub->read_all_edges((*it).s_id,edges);
		if(res==1||res==0){
			vertexes.erase(it);
			it=vertexes.begin();
		}
		if(res==2){
			it++;
			if(it==vertexes.end()){
				it=vertexes.begin();
			}
			
		}
	}
	rep.ans(STATUS_OK,edges);
}