Howdy all!
For the iterator through the dimension scales, the docs have this to
say:
typedef herr_t (*H5DS_iterate_t)(hid_t did, unsigned dim, hid_t
dsid, void *visitor_data);
"The operation receives the Dimension Scale dataset identifier, dsid,
and the pointer to the operator data passed in to H5DDiterate_scales,
visitor_data."
What does parameter did hold?
Also, when I try to use dsid to get the name of the dataset, I get
garbage:
herr_t alien_visitor(hid_t did, unsigned dim, hid_t dsid,
void *visitor_data)
{
char name1[NC_MAX_NAME], name2[NC_MAX_NAME];
(*(hid_t *)visitor_data) = dsid;
if (H5Iget_name(did, name1, NC_MAX_NAME) < 0) ERR;
if (H5Iget_name(dsid, name2, NC_MAX_NAME) < 0) ERR;
/*printf("visiting did 0x%x dim %d dsid 0x%x name of did %s name of dsid
%s\n",
did, dim, dsid, name1, name2);*/
printf("visiting did 0x%x dim %d dsid 0x%x name of did %s \n",
did, dim, dsid, name1);
printf("name of dsid: %s\n", name2);
return 0;
}
Called like this:
/* Go through all dimscales for this var and learn about them. */
for (d = 0; d < ndims; d++)
if (H5DSiterate_scales(datasetid, d, NULL, alien_visitor,
&visitor_data) < 0) ERR;
Yields this:
visiting did 0x600000b dim 0 dsid 0x600000c name of did /simple_scales/var1
:ú·(ùÔòÿ¿Àóÿ¿
Does dsid not have a valid name? Or am I missing something?
While in the visitor function, I need to know what dimscale I am
visiting.
Thanks!
Ed
--
Ed Hartnett -- ed@xxxxxxxxxxxxxxxx