|
OPeNDAP Hyrax Back End Server (BES)
Updated for version 3.8.3
|
Data attributes processing source. More...
#include "hdf5_handler.h"
Go to the source code of this file.
Functions | |
| void | add_group_structure_info (DAS &das, const char *gname, char *oname, bool is_group) |
| will insert group information in a structure format into DAS table. More... | |
| void | depth_first (hid_t pid, const char *gname, DAS &das) |
| depth first traversal of hdf5 file attributes. More... | |
| void | find_gloattr (hid_t file, DAS &das) |
| will fill in attributes of the root group into one DAS table. More... | |
| string | get_hardlink (hid_t pgroup, const string &oname) |
| will put hardlink information into a DAS table. More... | |
| void | get_softlink (DAS &das, hid_t pgroup, const char *gname, const string &oname, int index, size_t val_size) |
| string | print_attr (hid_t type, int loc, void *sm_buf) |
| will get the printed representation of an attribute. More... | |
| void | read_comments (DAS &das, const string &varname, hid_t oid) |
| will fill in attributes of a group's comment into DAS table. More... | |
| void | read_objects (DAS &das, const string &varname, hid_t oid, int num_attr) |
| will fill in attributes of a dataset or a group into one DAS table. More... | |
Variables | |
| HDF5PathFinder | paths |
| A variable for remembering visited paths to break cyclic HDF5 groups. More... | |
Data attributes processing source.
This file is part of h5_dap_handler, a C++ implementation of the DAP handler for HDF5 data.
This is the HDF5-DAS that extracts DAS class descriptors converted from HDF5 attribute of an hdf5 data file.
Definition in file h5das.cc.
| add_group_structure_info | ( | DAS & | das, |
| const char * | gname, | ||
| char * | oname, | ||
| bool | is_group | ||
| ) |
will insert group information in a structure format into DAS table.
This function adds a special attribute called "HDF5_ROOT_GROUP" if the gname is "/". If is_group is true, it keeps appending new attribute table called oname under the gname path. If is_group is false, it appends a string attribute called oname. For details, see the HDF5-DAP2 Mapping Technical Note from [1].
[1] http://www.hdfgroup.org/projects/opendap/opendap_docs.html
| das | DAS object: reference |
| gname | absolute group pathname of an object |
| oname | name of object |
| is_group | indicates whether it's a dataset or group |
Definition at line 916 of file h5das.cc.
References NULL.
Referenced by depth_first().
| depth_first | ( | hid_t | pid, |
| const char * | gname, | ||
| DAS & | das | ||
| ) |
depth first traversal of hdf5 file attributes.
This function will walk through an hdf5 group using depth- first approach to obtain all the group and dataset attributes of an hdf5 file. During the process of the depth first search, DAS table will be filled. In case of errors, an exception will be thrown.
| pid | dataset id(group id) |
| gname | group name(absolute name from the root group) |
| das | reference of DAS object |
To keep track of soft links.
Definition at line 60 of file h5das.cc.
References add_group_structure_info(), depth_first(), DODS_NAMELEN, get_hardlink(), HDF5PathFinder::get_name(), get_softlink(), NULL, read_comments(), and read_objects().
Referenced by depth_first(), HDF5RequestHandler::hdf5_build_das(), HDF5RequestHandler::hdf5_build_data(), and HDF5RequestHandler::hdf5_build_dds().

| find_gloattr | ( | hid_t | file, |
| DAS & | das | ||
| ) |
will fill in attributes of the root group into one DAS table.
The attributes are treated as global attributes.
| das | DAS object reference |
| file | HDF5 file id |
| msg | string of error message to the dods interface. |
Definition at line 683 of file h5das.cc.
References get_hardlink(), and read_objects().
Referenced by HDF5RequestHandler::hdf5_build_das(), HDF5RequestHandler::hdf5_build_data(), and HDF5RequestHandler::hdf5_build_dds().

| get_hardlink | ( | hid_t | pgroup, |
| const string & | oname | ||
| ) |
will put hardlink information into a DAS table.
| pgroup | object id |
| oname | object name: absolute name of a group |
Definition at line 824 of file h5das.cc.
References HDF5PathFinder::add().
Referenced by depth_first(), and find_gloattr().

| void get_softlink | ( | DAS & | das, |
| hid_t | pgroup, | ||
| const char * | gname, | ||
| const string & | oname, | ||
| int | index, | ||
| size_t | val_size | ||
| ) |
Definition at line 765 of file h5das.cc.
Referenced by depth_first().
| print_attr | ( | hid_t | type, |
| int | loc, | ||
| void * | sm_buf | ||
| ) |
will get the printed representation of an attribute.
This function is based on netcdf-dods server.
| type | HDF5 data type id |
| loc | the number of array number |
| sm_buf | pointer to an attribute |
This probably needs to be re-considered!
Due to the priority of the handler work, this function will not be
re-written in this re-engineering process. KY 2011-Nov. 14th
Definition at line 288 of file h5das.cc.
References NULL.
Referenced by nc_read_dataset_attributes(), and read_objects().
| read_comments | ( | DAS & | das, |
| const string & | varname, | ||
| hid_t | oid | ||
| ) |
will fill in attributes of a group's comment into DAS table.
| das | DAS object: reference |
| varname | absolute name of an object |
| oid | object id |
Definition at line 868 of file h5das.cc.
Referenced by depth_first().
| void read_objects | ( | DAS & | das, |
| const string & | varname, | ||
| hid_t | oid, | ||
| int | num_attr | ||
| ) |
will fill in attributes of a dataset or a group into one DAS table.
| das | DAS object: reference |
| varname | absolute name of an HDF5 dataset or an HDF5 group |
| oid | HDF5 object id(a handle) |
| num_attr | number of attributes. |
Definition at line 481 of file h5das.cc.
References get_attr_info(), get_dap_type(), HDF5_OBJ_FULLPATH, DSattr::name, DSattr::ndims, DSattr::need, DSattr::nelmts, NULL, print_attr(), and DSattr::type.
Referenced by depth_first(), and find_gloattr().

| HDF5PathFinder paths |