static void coastline_processor_finish(struct item_bin_sink_func *coastline_processor) { struct tile_parameter *param=coastline_processor->priv_data[0]; struct item_bin_sink *tiles=coastline_processor->priv_data[1]; struct item_bin_sink_func *tile_collector=coastline_processor->priv_data[2]; g_free(param); tile_collector_finish(tile_collector); item_bin_sink_destroy(tiles); item_bin_sink_func_destroy(coastline_processor); }
static int tile_collector_finish(struct item_bin_sink_func *tile_collector) { struct coastline_tile_data data; int i; data.sink=tile_collector; data.tile_edges=g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); GHashTable *hash=tile_collector->priv_data[0]; fprintf(stderr,"tile_collector_finish\n"); g_hash_table_foreach(hash, (GHFunc) tile_collector_process_tile, &data); fprintf(stderr,"tile_collector_finish foreach done\n"); g_hash_table_destroy(hash); fprintf(stderr,"tile_collector_finish destroy done\n"); for (i = 14 ; i > 0 ; i--) { fprintf(stderr,"Level=%d\n",i); data.level=i; g_hash_table_foreach(data.tile_edges, (GHFunc) tile_collector_add_siblings, &data); fprintf(stderr,"*"); g_hash_table_foreach(data.tile_edges, (GHFunc) tile_collector_add_siblings, &data); fprintf(stderr,"*"); g_hash_table_foreach(data.tile_edges, (GHFunc) tile_collector_add_siblings, &data); fprintf(stderr,"*"); g_hash_table_foreach(data.tile_edges, (GHFunc) tile_collector_add_siblings, &data); fprintf(stderr,"*"); g_hash_table_foreach(data.tile_edges, (GHFunc) tile_collector_add_siblings2, &data); fprintf(stderr,"*\n"); g_hash_table_foreach(data.tile_edges, (GHFunc) tile_collector_add_siblings2, &data); fprintf(stderr,"*\n"); g_hash_table_foreach(data.tile_edges, (GHFunc) tile_collector_add_siblings2, &data); fprintf(stderr,"*\n"); g_hash_table_foreach(data.tile_edges, (GHFunc) tile_collector_add_siblings2, &data); fprintf(stderr,"*\n"); } #if 0 data.level=13; g_hash_table_foreach(data.tile_edges, tile_collector_add_siblings, &data); g_hash_table_foreach(data.tile_edges, tile_collector_add_siblings, &data); g_hash_table_foreach(data.tile_edges, tile_collector_add_siblings2, &data); data.level=12; g_hash_table_foreach(data.tile_edges, tile_collector_add_siblings, &data); g_hash_table_foreach(data.tile_edges, tile_collector_add_siblings, &data); #endif item_bin_sink_func_destroy(tile_collector); fprintf(stderr,"tile_collector_finish done\n"); return 0; }
int file_writer_finish(struct item_bin_sink_func *file_writer) { item_bin_sink_func_destroy(file_writer); return 0; }