#include #include using namespace std; #include #include #include #include "mysql.h" #include "db.h" #include "cluster_info.h" cluster_info::cluster_info(char *scheme) { char query[1024]; MYSQL_RES *mysql_result; MYSQL_ROW mysql_row; int len_query, i; db cluster_db("primex_cluster"); // get the database handle mysql_handle_ptr = &cluster_db.handle; strcpy(query_template, "SELECT memberId from ClusterMember, Scheme "); strcat(query_template, "WHERE centralId = %d AND schemeId = Scheme.id "); strcat(query_template, "AND Scheme.name = '"); strcat(query_template, scheme); strcat(query_template, "'"); // get id and geometry information strcpy(query, "SELECT id, x, y, type from Module"); len_query = strlen(query); mysql_real_query(mysql_handle_ptr, query, len_query); mysql_result = mysql_store_result(mysql_handle_ptr); i = 0; while (mysql_row = mysql_fetch_row(mysql_result)) { module_id[i] = atoi(mysql_row[0]); x[i] = atof(mysql_row[1]); y[i] = atof(mysql_row[2]); strcpy(type[i], mysql_row[3]); i++; } module_count = i; module_id[i] = 0; mysql_free_result(mysql_result); }; void next_module(int *id, float *x, float *y) { }; void cluster_info::set_center(int id_center) { int i, id; char query[1024]; unsigned long len_query; MYSQL_RES *mysql_result; MYSQL_ROW mysql_row; sprintf(query, query_template, id_center); len_query = strlen(query); mysql_real_query(mysql_handle_ptr, query, len_query); mysql_result = mysql_store_result(mysql_handle_ptr); i = 0; while (mysql_row = mysql_fetch_row(mysql_result)) { id = atoi(mysql_row[0]); if (id != id_center) { neighbor_id[i] = id; i++; } } neighbor_id[i] = 0; neighbor_index = 0; mysql_free_result(mysql_result); }; int cluster_info::next_neighbor() { return neighbor_id[neighbor_index++]; };