Exemple #1
0
//处理批量添加边的函数,边都属于一个图
void handler_add_vertexes(Replier &rep){
	string graph_name=rep.get_graph_name();
	list<Vertex_u> &vertexes=rep.get_vertexes();
	list<Vertex_u>::iterator it=vertexes.begin();
	Subgraph *sub;
	uint32_t num=0;
	while(it!=vertexes.end()){
		sub=graph_set->get_subgraph(graph_name,(*it).id);//得到该图该顶点所在的子图,子图不存在,则会创建一个
		Vertex v(*it);
		int res=sub->add_vertex(v);
		if(res==0||res==1){
					if(res==0){
                    	graph_set->get_graph(graph_name)->vertex_num_increment();
                    	num++;//添加成功,记录一笔
					}
					vertexes.erase(it);
					it=vertexes.begin();
                }
		else{
			it++;
			if(it==vertexes.end()){
				it=vertexes.begin();
			}
		}
	}
	ostringstream stream_num;
	stream_num<<num;
	string string_num=stream_num.str();
	rep.ans(STATUS_OK,string_num.c_str(),string_num.size()+1);
}