int gt_layout_sketch(GtLayout *layout, GtCanvas *target_canvas, GtError *err) { int had_err = 0; unsigned long i; GtRenderTraverseInfo rti; gt_assert(layout && target_canvas); had_err = layout_all_tracks(layout, err); if (!had_err) { rti.layout = layout; rti.canvas = target_canvas; had_err = gt_canvas_visit_layout_pre(target_canvas, layout, err); if (had_err) return had_err; if (layout->track_ordering_func == NULL) { had_err = gt_hashmap_foreach_in_key_order(layout->tracks, render_tracks, &rti, err); } else { had_err = gt_hashmap_foreach_ordered(layout->tracks, render_tracks, &rti, (GtCompare) track_cmp_wrapper, err); } if (had_err) return had_err; had_err = gt_canvas_visit_layout_post(target_canvas, layout, err); if (had_err) return had_err; for (i=0;i<gt_array_size(layout->custom_tracks);i++) { GtCustomTrack *ct = *(GtCustomTrack**) gt_array_get(layout->custom_tracks, i); had_err = render_custom_tracks(NULL, ct, &rti, err); } } return had_err ? -1 : 0; }
void gth_region_factory_save(GthRegionFactory *rf, GtArray *nodes, GthInput *input) { GtHashmap *sequence_regions; GtUword i, j; GtStr *sequenceid; GT_UNUSED int had_err; gt_assert(rf && nodes && input); gt_assert(!rf->factory_was_used); rf->seqid_store = seqid_store_new(input); sequence_regions = gt_hashmap_new(GT_HASH_STRING, NULL, NULL); sequenceid = gt_str_new(); for (i = 0; i < gth_input_num_of_gen_files(input); i++) { gth_input_load_genomic_file(input, i, false); for (j = 0; j < gth_input_num_of_gen_seqs(input, i); j++) { gt_str_reset(sequenceid); gth_input_save_gen_identifier(input, sequenceid, i, j); make_sequence_region(sequence_regions, sequenceid, rf, input, i, j); } } gt_str_delete(sequenceid); had_err = gt_hashmap_foreach_in_key_order(sequence_regions, save_sequence_region, nodes, NULL); gt_assert(!had_err); /* should not happen */ gt_hashmap_delete(sequence_regions); rf->factory_was_used = true; }
void gt_regioncov_visitor_show_coverage(GtNodeVisitor *nv) { GtRegionCovVisitor *regioncov_visitor = gt_regioncov_visitor_cast(nv); GT_UNUSED int had_err; had_err = gt_hashmap_foreach_in_key_order(regioncov_visitor->region2rangelist, show_rangelist, NULL, NULL); gt_assert(!had_err); /* show_rangelist() is sane */ }
void gt_toolbox_iterate(const GtToolbox *tb, GtToolboxIterator func, void *data) { IterateInfo info; GT_UNUSED int had_err = 0; gt_assert(tb && func); info.func = func; info.data = data; had_err = gt_hashmap_foreach_in_key_order(tb->tools, toolbox_iterate, &info, NULL); gt_assert(!had_err); /* func() is sane */ }
int gt_toolbox_show(GT_UNUSED const char *progname, void *toolbox, GT_UNUSED GtError *err) { GtToolbox *tb; GT_UNUSED int had_err = 0; gt_error_check(err); gt_assert(toolbox); tb = (GtToolbox*) toolbox; printf("\nTools:\n\n"); had_err = gt_hashmap_foreach_in_key_order(tb->tools, show_tool_name, NULL, NULL); gt_assert(!had_err); /* show_tool_name() is sane */ return 0; }
static int run_tests(GtR *gtr, GtError *err) { int test_err = 0, had_err = 0; char* key; void* value; gt_error_check(err); gt_assert(gtr); /* The following type assumptions are made in the GenomeTools library. */ gt_ensure(sizeof (char) == 1); gt_ensure(sizeof (unsigned char) == 1); gt_ensure(sizeof (short) == 2); gt_ensure(sizeof (unsigned short) == 2); gt_ensure(sizeof (int) == 4); gt_ensure(sizeof (unsigned int) == 4); gt_ensure(sizeof (GtWord) == 4 || sizeof (GtWord) == 8); gt_ensure(sizeof (GtUword) == 4 || sizeof (GtUword) == 8); gt_ensure(sizeof (GtUword) >= sizeof (size_t)); gt_ensure(sizeof (GtInt64) == 8); gt_ensure(sizeof (GtUint64) == 8); /* show seed */ printf("seed=%u\n", gtr->seed); gt_hashmap_unit_test(err); if (gtr->unit_tests) { if (gt_str_length(gtr->test_only) > 0) { key = gt_str_get(gtr->test_only); value = gt_hashmap_get(gtr->unit_tests, key); if (value) { had_err = gt_unit_test_run(key, value, &test_err, err); gt_assert(!had_err); /* cannot happen, gt_unit_test_run() is sane */ } else { gt_error_set(err, "Test \"%s\" not found", key); return EXIT_FAILURE; } } else { had_err = gt_hashmap_foreach_in_key_order(gtr->unit_tests, gt_unit_test_run, &test_err, err); gt_assert(!had_err); /* cannot happen, gt_unit_test_run() is sane */ } } if (test_err) return EXIT_FAILURE; return EXIT_SUCCESS; }
int gt_layout_sketch(GtLayout *layout, GtCanvas *target_canvas, GtError *err) { int had_err = 0; unsigned long i; GtRenderTraverseInfo rti; gt_assert(layout && target_canvas); rti.layout = layout; rti.canvas = target_canvas; had_err = gt_canvas_visit_layout_pre(target_canvas, layout, err); if (had_err) return had_err; had_err = gt_hashmap_foreach_in_key_order(layout->tracks, render_tracks, &rti, err); if (had_err) return had_err; had_err = gt_canvas_visit_layout_post(target_canvas, layout, err); if (had_err) return had_err; for (i=0;i<gt_array_size(layout->custom_tracks);i++) { GtCustomTrack *ct = *(GtCustomTrack**) gt_array_get(layout->custom_tracks, i); had_err = render_custom_tracks(NULL, ct, &rti, err); } return had_err; }