gboolean vcd_dump(struct state *state, guint8 *samples) { struct vcd_state s = { .state = state, .samples = samples }; if (state->outfile == NULL) s.out = stdout; else { if ((s.out = fopen(state->outfile, "w")) == NULL) { perror(state->outfile); return FALSE; } } if (!write_header(&s)) { fclose(s.out); return FALSE; } dump_values(&s); fclose(s.out); return TRUE; }
static int dump_handle(FILE* out,grib_handle* h) { grib_keys_iterator* iter = grib_keys_iterator_new(h, GRIB_KEYS_ITERATOR_SKIP_READ_ONLY|GRIB_KEYS_ITERATOR_SKIP_DUPLICATES,NULL); while(grib_keys_iterator_next(iter)) { grib_accessor* a = grib_keys_iterator_get_accessor(iter); dump_values(out,h,grib_keys_iterator_get_name(iter), a->flags & GRIB_ACCESSOR_FLAG_CAN_BE_MISSING); } grib_keys_iterator_delete(iter); return 0; }