struct item_bin_sink_func * tile_collector_new(struct item_bin_sink *out) { struct item_bin_sink_func *tile_collector; tile_collector=item_bin_sink_func_new(tile_collector_process); tile_collector->priv_data[0]=g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); tile_collector->priv_data[1]=out; return tile_collector; }
struct item_bin_sink_func * file_writer_new(FILE *out) { struct item_bin_sink_func *file_writer; if (!out) return NULL; file_writer=item_bin_sink_func_new(file_writer_process); file_writer->priv_data[0]=out; return file_writer; }
static struct item_bin_sink_func * coastline_processor_new(struct item_bin_sink *out) { struct item_bin_sink_func *coastline_processor=item_bin_sink_func_new(coastline_processor_process); struct item_bin_sink *tiles=item_bin_sink_new(); struct item_bin_sink_func *tile_collector=tile_collector_new(out); struct tile_parameter *param=g_new0(struct tile_parameter, 1); fprintf(stderr,"new:out=%p\n",out); param->min=14; param->max=14; param->overlap=0; item_bin_sink_add_func(tiles, tile_collector); coastline_processor->priv_data[0]=param; coastline_processor->priv_data[1]=tiles; coastline_processor->priv_data[2]=tile_collector; return coastline_processor; }