void Map<T,H>::clear() { delete_all_nodes(this->root->left); delete_all_nodes(this->root->right); this->head->next_iter=this->tail; this->tail->prev_iter=this->head; this->root = nullptr; }
void Map<T,H>::delete_all_nodes(Node *n) { if(n == nullptr) return; delete_all_nodes(n->left); delete_all_nodes(n->right); delete_node(n); }
void kill_map() { delete_all_nodes(); delete_all_conns(); delete_all_curves(); delete_all_points(); delete_all_fills(); delete_all_lines(); delete_all_tiles(); delete_all_objects(); free_string(map_filename); free_string(map_path); }
void clear_map() // always called when not working { delete_all_nodes(); delete_all_conns(); delete_all_curves(); delete_all_points(); delete_all_fills(); delete_all_lines(); delete_all_tiles(); delete_all_objects(); map_saved = 1; string_clear(map_filename); string_clear(map_path); char *cwd = get_current_dir_name(); string_cat_text(map_path, cwd); free(cwd); }
void processNodeAddDeletePayload(addDeleteNodePayload *payload, int payload_size) { int i; thread_data *tdata; char *buf; char IP[16]; pthread_t thread; pthread_mutex_lock(&node_list_mutex); printf("\n********--------------------In AddDeletePayload-----------------------------************\n"); for(i=0;i<sizeof(*payload);i++) { printf("%0x,", *(payload + i)); } getchar(); if ((payload->flags & ADD_PAYLOAD) && (payload->flags & COMPLETE_PAYLOAD)) { delete_all_nodes(&server_topology); } for (i = 0; i < payload->numOfNodes; i++) { if (payload->flags & DELETE_PAYLOAD) { remove_from_list(&server_topology, payload->ID[i]); if (payload->flags & LEAVE_NOTIFICATION) { //LOG(INFO, "Node %s is voluntarily leaving the group", payload->ID[i]); } else if (payload->flags & LEAVE_NOTIFICATION) { //LOG(INFO, "Node %s has failed. Removing its entry", payload->ID[i]); } }else if (payload->flags & ADD_PAYLOAD) { //LOG(INFO, "Node %s is being added as a member in the group", payload->ID[i]); add_to_list(&server_topology, payload->ID[i]); pthread_mutex_lock(×tamp_mutex); strcpy(savedHeartbeat[0].ipAddr, payload->ID[i] + 4); pthread_mutex_unlock(×tamp_mutex); } } if(myself != NULL) { memcpy(IP, myself->next->IP, 16); pthread_mutex_lock(×tamp_mutex); strcpy(savedHeartbeat[0].ipAddr, myself->prev->IP); pthread_mutex_unlock(×tamp_mutex); } pthread_mutex_unlock(&node_list_mutex); if (payload->ttl > 0 && server_topology->num_of_nodes > 0) { payload->ttl--; buf = calloc(1,payload_size); memcpy(buf, payload, payload_size); tdata = calloc(1,sizeof(thread_data)); memcpy(tdata->ip, IP, 16); tdata->payload_size = payload_size; tdata->payload = buf; (void)pthread_create(&thread, NULL, send_node_update_payload, (void*)tdata); } }