Esempio n. 1
0
struct item_bin_sink *
file_reader_new(FILE *in, int limit, int offset)
{
	struct item_bin_sink *ret;
	if (!in)
		return NULL;
	ret=item_bin_sink_new();
	ret->priv_data[0]=in;
	ret->priv_data[1]=(void *)(long)limit;
	ret->priv_data[2]=(void *)(long)offset;
	fseek(in, 0, SEEK_SET);
	return ret;
}
Esempio n. 2
0
void
process_coastlines(FILE *in, FILE *out)
{
	struct item_bin_sink *reader=file_reader_new(in,1000000,0);
	struct item_bin_sink_func *file_writer=file_writer_new(out);
	struct item_bin_sink *result=item_bin_sink_new();
	struct item_bin_sink_func *coastline_processor=coastline_processor_new(result);
	item_bin_sink_add_func(reader, coastline_processor);
	item_bin_sink_add_func(result, file_writer);
	file_reader_finish(reader);
	coastline_processor_finish(coastline_processor);
	file_writer_finish(file_writer);
	item_bin_sink_destroy(result);
}
Esempio n. 3
0
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;
}