Exemplo n.º 1
0
static int compare_handles(grib_handle* h1,grib_handle* h2,blacklist* bl)
{
  int err = 0;
  const char* name=NULL;
  grib_keys_iterator* iter  = grib_keys_iterator_new(h1,
    GRIB_KEYS_ITERATOR_SKIP_EDITION_SPECIFIC|GRIB_KEYS_ITERATOR_SKIP_DUPLICATES,NULL);

  if (!iter) {
    printf("ERROR: unable to get iterator begin\n");
    exit(1);
  }

  while(grib_keys_iterator_next(iter))
  {
    /* printf("--------------- %s -----------\n",iter->current->name); */
  /* We can also black list with the class*/
/* grib_get_accessor_class_name' */

    name=grib_keys_iterator_get_name(iter);

    if( !in_blacklist(name,bl) && compare_values(h1,h2,name))
      err++;

  }

  grib_keys_iterator_delete(iter);

  return err;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
int codes_keys_iterator_next(grib_keys_iterator *kiter)
{
    return grib_keys_iterator_next(kiter);
}