diff options
Diffstat (limited to 'tools/lib/h5trav.h')
-rw-r--r-- | tools/lib/h5trav.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/tools/lib/h5trav.h b/tools/lib/h5trav.h new file mode 100644 index 0000000..cb61cd1 --- /dev/null +++ b/tools/lib/h5trav.h @@ -0,0 +1,94 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef H5TRAV_H__ +#define H5TRAV_H__ + +#include "hdf5.h" + + +/*------------------------------------------------------------------------- + * public struct to store name and type of an object + * the TYPE can be: + * H5G_UNKNOWN = -1, + * H5G_LINK, Object is a symbolic link + * H5G_GROUP, Object is a group + * H5G_DATASET, Object is a dataset + * H5G_TYPE, Object is a named data type + *------------------------------------------------------------------------- + */ + +typedef struct trav_info_t { + char *name; + H5G_obj_t type; +} trav_info_t; + + +/*------------------------------------------------------------------------- + * struct to store basic info needed for the h5trav table traversal algorythm + *------------------------------------------------------------------------- + */ + +typedef struct trav_obj_t { + haddr_t objno; + unsigned flags[2]; + char *objname; + int displayed; + H5G_obj_t type; +} trav_obj_t; + + +/*------------------------------------------------------------------------- + * private struct that stores all objects + *------------------------------------------------------------------------- + */ + +typedef struct trav_table_t { + int size; + int nobjs; + trav_obj_t *objs; +} trav_table_t; + + +/*------------------------------------------------------------------------- + * "h5trav info" public functions + *------------------------------------------------------------------------- + */ + +#ifdef __cplusplus +extern "C" { +#endif + +int h5trav_getinfo( hid_t file_id, trav_info_t *info ); +int h5trav_getindex( const char *obj, int nobjs, trav_info_t *info ); +void h5trav_freeinfo( trav_info_t *info, int nobjs ); + +#ifdef __cplusplus +} +#endif + +/*------------------------------------------------------------------------- + * table private functions + *------------------------------------------------------------------------- + */ + +void trav_table_init(trav_table_t **table); +void trav_table_free(trav_table_t *table); +int trav_table_search(haddr_t objno, trav_table_t *table ); +void trav_table_add(haddr_t objno, char *objname, int type, trav_table_t *table); +void trav_table_addflags(unsigned *flags, char *objname, int type, trav_table_t *table); + + + +#endif /* H5TRAV_H__ */ |