/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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__ */